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

来源:互联网 发布:小米note查看网络制式 编辑:程序博客网 时间:2024/09/21 09:28

今天分享的这个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的实例分享给大家。


0 0
原创粉丝点击