[android] 新闻客户端主界面部分

当我们使用activity加fragment的时候,每个界面都要建立一个fragment,每个fragment里面都要重写onCreate(),onCreateView(),onActivityCreated(),方法,我们新建一个基类BaseFragment来重写这些方法

BaseFragment需要定义一个抽象方法initView(),用来初始化View对象,需要子类去实现,我们父类把LayoutInflater对象传进去

BaseFragment需要定义一个抽象方法initData(),用来初始化数据,需要子类去实现

package com.qingguow.news.fragment;

import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
/**
 * 基础类
 * @author taoshihan
 *
 */
public abstract class BaseFragment extends Fragment {

    public Context context;
    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onActivityCreated(savedInstanceState);
        initData(savedInstanceState);
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        context=getActivity();
    }

    @Override
    @Nullable
    public View onCreateView(LayoutInflater inflater,
            @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view=initView(inflater);
        return view;
    }
    /**
     * 初始化View对象
     * @param inflater
     * @return
     */
    public abstract View initView(LayoutInflater inflater);
    /**
     * 初始化数据
     * @param Bundle
     * @return
     */
    public abstract void initData(Bundle savedInstanceState);
}

主Fragment里实现Banner轮播

在fragment_index.xml布局文件中添加节点<android.support.v4.view.ViewPager />

获取ViewPager对象,通过findViewById()方法

调用ViewPager对象的setAdapter()方法,设置适配器,参数:PagerAdapter对象

使用匿名内部类的方式实现抽象方法,getCount(),isViewFromObject(),instantiateItem(),destroyItem()

重写getCount()方法,返回轮播的个数

重写isViewFromObject()方法,返回布尔值,

重写instantiateItem()方法,将当前view对象添加到ViewGroup对象,返回当前对象

重写destroyItem()方法,从当前container中删除指定位置(position)的View

package com.qingguow.news.fragment;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.qingguow.news.R;
/**
 * 首页
 * @author taoshihan
 *
 */
public class IndexFragment extends BaseFragment {
    private List<View> banners;
    @Override
    public View initView(LayoutInflater inflater) {
        View view=inflater.inflate(R.layout.fragment_index, null);
        //banner部分
        banners=new ArrayList<>();
        TextView tv=new TextView(context);
        tv.setText("测试");
        banners.add(tv);
        TextView tv2=new TextView(context);
        tv2.setText("测试2");
        banners.add(tv2);
        ViewPager vp=(ViewPager) view.findViewById(R.id.vp_banner);
        vp.setAdapter(new PagerAdapter(){
            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView(banners.get(position));
            }
            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                container.addView(banners.get(position));
                return banners.get(position);
            }
            @Override
            public int getCount() {
                return banners.size();
            }

            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                return arg0==arg1;
            }
        });
        return view;
    }

    @Override
    public void initData(Bundle savedInstanceState) {
        // TODO Auto-generated method stub

    }
}
时间: 2024-11-10 08:12:12

[android] 新闻客户端主界面部分的相关文章

Android应用经典主界面框架之二:仿网易新闻客户端、CSDN 客户端 (Fragment ViewPager)

第二种主界面风格则是以网易新闻.凤凰新闻以及新推出的新浪博客(阅读版)为代表,使用ViewPager+Fragment,即ViewPager里适配器里放的不是一般的View,而是Fragment.所以适配器不能继承PagerAdapter,而要继承FragmentPagerAdapter,这是在android.support.v4.app.FragmentPagerAdapter包里的.有点奇葩的是,FragmentPagerAdapter只在这个包里有,在android.app.*这个包下面么

Android应用经典主界面框架之一:仿QQ (使用Fragment, 附源码)

最近反复研究日常经典必用的几个android app,从主界面带来的交互方式入手进行分析,我将其大致分为三类.今天记录第一种方式,即主界面下面有几个tab页,最上端是标题栏,tab页和tab页之间不是通过滑动切换的,而是通过点击切换tab页.早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势.本文也使用fragment进行搭建,标题中的"经典"指这种交互经典,非本文的代

开源:我的Android新闻客户端,速度快、体积小、支持离线阅读、操作简便、内容展现形式丰富多样、信息量大、功能全面 等(要代码的留下邮箱)

分享:我的Android新闻客户端,速度快.体积小.支持离线阅读.操作简便.内容展现形式丰富多样.信息量大.功能全面 等(要代码的留下邮箱) 历时30天我为了开发这个新闻客户端APP,以下简称觅闻 http://m.yunxunmi.com/ 由于本人比较愚钝,不太擅长各种开源代码的运用,因此全部从0开始开发,期间开发了: 一个新闻采集器(C++),截止目前为止已经连续运行20多天没出现任何故障,采集接近150个大中型新闻分类网站,采集器下载及介绍网站预计下周免费发布,风格类似我的即时通讯网站 

Android源码下载之《Android新闻客户端源码》

介绍 Android新闻客户端源码,功能上分为:新闻.关注.读报.微博.里面比较有特色的就是读报功能,真正安装报纸的排版进行读报,给人得感觉就像是在读真实的报纸.其实即使首页的动态云标签非常有特色,可以随机显示出最新新闻热词,用手滑动还能动态切换.此Demo即可作为学习使用也可作为商业使用,本站保留原创权利! 测试环境 [Code4Apk]编译测试,测试环境:eclipse 3.7 , android 2.3.3 效果图 下载 更多精彩请关注Android源码下载:Android源码下载  (h

ScrollView + viewpager实现android的app主界面效果

ScrollView + viewpager实现android的app主界面效果 Android的主界面一般由两部分组成:导航栏,滑动的分屏(我自己这么叫的).其中滑动的分屏肯定是用的fragment,具体的承载的控件是viewpager.而导航分页栏用的控件就有很多了,tabhost,Scrollview或者自定义的都行. 个人认为tabhost和Scrollview都是比较好的,因为后期的可拓展性比较好,除非导航栏界面确实属于"自定义"范畴,基本上我们可以选择这两样就可以了. 其实

Android应用经典主界面框架之二:仿网易新闻client、CSDN client (Fragment ViewPager)

另外一种主界面风格则是以网易新闻.凤凰新闻以及新推出的新浪博客(阅读版)为代表.使用ViewPager+Fragment,即ViewPager里适配器里放的不是一般的View.而是Fragment.所以适配器不能继承PagerAdapter,而要继承FragmentPagerAdapter,这是在android.support.v4.app.FragmentPagerAdapter包里的.有点奇葩的是,FragmentPagerAdapter仅仅在这个包里有,在android.app.*这个包以

Android应用经典主界面框架之一:仿QQ (使用Fragment)

最近反复研究日常经典必用的几个android app,从主界面带来的交互方式入手进行分析,我将其大致分为三类.今天记录第一种方式,即主界面下面有几个tab页,最上端是标题栏,tab页和tab页之间不是通过滑动切换的,而是通过点击切换tab页.早期这种架构一直是使用tabhost+activitygroup来使用,随着fragment的出现及google官方也大力推荐使用fragment,后者大有代替前者之势.本文也使用fragment进行搭建,标题中的“经典”指这种交互经典,非本文的代码框架结构

Ace教你一步一步做Android新闻客户端(一)

复制粘贴了那么多博文很不好意思没点自己原创的也说不出去,现在写一篇一步一步教你做安卓新闻客户端,借此机会也是让自己把相关的技术再复习一遍,大神莫笑,专门做给新手看. 手里存了两篇,一个包括软件视图 和新手引导 软件侧滑菜单 滑动主页的GUI篇 一个内容解析篇. 代码里有很详细的注释 所以直接放代码了 有不会的站内信或者评论我会及时回复. MainActivity XML :只有一个ListView布局 <?xml version="1.0" encoding="utf-

Android Tab类型主界面 Fragment+TabPageIndicator+ViewPager

文章地址: Android项目Tab类型主界面大总结 Fragment+TabPageIndicator+ViewPager 1.使用ViewPager + PagerAdapter 每个页面的内容都在一个Activity中,维护起来会比较麻烦 2.FragmentManager + Fragment 每个页面的内容分开,但是只能点击按钮换页 3.ViewPager + FragmentPagerAdapter 综合前两种方式,比较好 4.TabPageIndicator + ViewPager