ViewPager组合其他View的简单使用(一)

今天分享的这个DEMO比较简单只是简单的配合标题栏多个View视图的切换,项目虽小,在此基础上还是可以做很多创新的,比如可以做出APP首次启动的引导页,列表视图头部轮播的动态导引图等等。相信大家对ViewPager也十分熟悉了,我就不具体介绍ViewPager了,其实知识都是相融相通的,我喜欢把ViewPager跟ListView拿到一块来看,你如果用心去比较这两个组件其实是有很大的相似的。


先是一个PagerAdapter,可以类比写listView时的BaseAdapter

/**
 * Created by 谢栋 on 2017/1/31.
 */
public class MyPagerAdapter extends PagerAdapter {

    private List<View> viewList;
    private Context context;
    private String titles [] ={"第1页","第2页","第3页"};

    public MyPagerAdapter(Context context,List<View> viewList){
        this.viewList = viewList;
        this.context = context;
    }
    @Override
    public int getCount() {
        return viewList.size();
    }

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

    @Override
    public Object instantiateItem(ViewGroup container, int position) {

        View view = viewList.get(position);
        container.addView(view);
        return view;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        container.removeView(viewList.get(position));
    }

    @Override
    public int getItemPosition(Object object) {
        return super.getItemPosition(object);
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return titles[position];
    }
}


主布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <android.support.v4.view.PagerTabStrip
            android:id="@+id/pager_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    </android.support.v4.view.ViewPager>
</LinearLayout>


本次实例中一共三个View布局文件,我只贴上类似的其中一个

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="第1页"
        />

</LinearLayout>


最后是配置ViewPager的activity代码


/**
 * Created by 谢栋 on 2017/1/31.
 */
public class ViewPagerTest extends Activity{
    private ViewPager viewpager;
    private PagerTabStrip PagetTitle;
    private List<View> viewList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewpager_layout);

        initViews();
        viewpager.setAdapter(new MyPagerAdapter(this,viewList));
    }


    private void initViews() {

        viewpager = ((ViewPager) findViewById(R.id.viewpager));
        PagetTitle = ((PagerTabStrip)findViewById(R.id.pager_title));

        LayoutInflater inflater = LayoutInflater.from(this);

        //添加布局
        viewList.add(inflater.inflate(R.layout.viewpager_1,null));
        viewList.add(inflater.inflate(R.layout.viewpager_2,null));
        viewList.add(inflater.inflate(R.layout.viewpager_3,null));

        //设置PagerTabStrip
        PagetTitle.setBackgroundColor(Color.BLUE);
        PagetTitle.setTabIndicatorColor(Color.RED);
        PagetTitle.setTextColor(Color.WHITE);
    }
}



整个过程并不复杂,只要按部就班的来,还是很容易实现的,在此基础上你可以具体根据你的项目需求做出相应的改动,在下一期我会贴上一个ViewPager+Fragment的实例分享给大家。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值