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

前端之家收集整理的这篇文章主要介绍了[android] 新闻客户端主界面部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

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

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

package com.qingguow.news.fragment;

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

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


    @Override
     onCreate(@Nullable Bundle savedInstanceState) {
        .onCreate(savedInstanceState);
        context=getActivity();
    }

    @Override
    @Nullable
     View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container,@Nullable Bundle savedInstanceState) {
        View view=initView(inflater);
        return view;
    }
    
     * 初始化View对象
     * @param inflater
     * @return
     */
    abstract View initView(LayoutInflater inflater);
    
     * 初始化数据
     *  Bundle
     *  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

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

 android.support.v4.view.PagerAdapter;
 android.support.v4.view.ViewPager;
 android.widget.TextView;

 com.qingguow.news.R;

 * 首页
 * class IndexFragment  BaseFragment {
    private List<View> banners;
    @Override
     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= TextView(context);
        tv2.setText("测试2");
        banners.add(tv2);
        ViewPager vp=(ViewPager) view.findViewById(R.id.vp_banner);
        vp.setAdapter( PagerAdapter(){
            @Override
            void destroyItem(ViewGroup container,1)">int position,Object object) {
                container.removeView(banners.get(position));
            }
            @Override
            public Object instantiateItem(ViewGroup container,1)"> position) {
                container.addView(banners.get(position));
                 banners.get(position);
            }
            @Override
             getCount() {
                 banners.size();
            }

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

    @Override
     initData(Bundle savedInstanceState) {
         TODO Auto-generated method stub
        
    }
}

 

猜你在找的Android相关文章