首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[android] 新闻客户端主界面部分

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

作者头像
唯一Chat
发布2019-09-10 15:23:09
1.1K0
发布2019-09-10 15:23:09
举报

当我们使用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
        
    }
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-04-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档