Android学习-ViewPager实现导航

来源:互联网 发布:js获取flv的帧图片 编辑:程序博客网 时间:2024/05/21 17:44

加入ViewPager

加载显示的页卡
将Layout布局转换为View对象
1>LayoutInflater if = getLayoutInflater().from(this);
if.inflate(resource,root);
2>View.inflate(context,resource,root);

配置Adapter
1>PagerAdapter 数据源:List< View >
2>FragmentPagerAdapter 数据源:List< Fragment >
3>FragmentStatePagerAdapter 数据源:List< Fragment >

MainActivity.javapackage com.example.angel.project1;import android.graphics.Color;import android.os.Bundle;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity implements ViewPager.OnPageChangeListener{    private List<View> viewList;    private List<String> titleList;    private MyPagerAdapter pagerAdapter;    private PagerTabStrip pagerTabStrip;    private ViewPager pager;    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        viewList = new ArrayList<View>();        /*        * 通过View对象作为ViewPager的数据源        * */        View view1 = View.inflate(this,R.layout.view1,null);        View view2 = View.inflate(this,R.layout.view2,null);        View view3 = View.inflate(this,R.layout.view3,null);        View view4 = View.inflate(this,R.layout.view4,null);        viewList.add(view1);        viewList.add(view2);        viewList.add(view3);        viewList.add(view4);        //为ViewPager页卡设置标题        pagerTabStrip = (PagerTabStrip) findViewById(R.id.tab);        titleList = new ArrayList<>();        titleList.add("第一页");        titleList.add("第二页");        titleList.add("第三页");        titleList.add("第四页");        //为PagerTabStrip设置属性        pagerTabStrip.setBackgroundColor(Color.GRAY);        pagerTabStrip.setTextColor(Color.BLUE);        pagerTabStrip.setDrawFullUnderline(false);        pagerTabStrip.setTabIndicatorColor(Color.YELLOW);        //初始化ViewPager        pager=(ViewPager)findViewById(R.id.pager);        //创建PagerAdapter适配器        pagerAdapter = new MyPagerAdapter(viewList,titleList);        //ViewPager加载适配器        pager.setAdapter(pagerAdapter);        //设置监听器       pager. setOnPageChangeListener(this);    }    @Override    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {    }    @Override    public void onPageSelected(int position) {        Toast.makeText(this,"这是第"+position+"个页面",Toast.LENGTH_LONG).show();    }    @Override    public void onPageScrollStateChanged(int state) {    }}
MyPagerAdapter.javapackage com.example.angel.project1;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import java.util.List;public class MyPagerAdapter extends PagerAdapter {    private List<View> viewList;    private List<String> titleList;    public MyPagerAdapter(List<View>viewList,List<String> titleList){        this.viewList = viewList;        this.titleList = titleList;    }    /*    * 返回的是页卡的数量    * */    public int getCount() {        return viewList.size();    }    /*    * 判断View是否来自于该对象    * */    public boolean isViewFromObject(View view, Object object) {        return view==object;    }    /*    * 实例化页卡    * */    public Object instantiateItem(ViewGroup container, int position) {        container.addView(viewList.get(position));        return viewList.get(position);    }    /*    * 设置页卡标题    * */    public CharSequence getPageTitle(int position) {        return titleList.get(position);    }    /*        * 销毁一个页卡        * */    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView(viewList.get(position));    }}
main.xml<?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.support.v4.view.ViewPager        android:id="@+id/pager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center">        <android.support.v4.view.PagerTabStrip            android:id="@+id/tab"            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_gravity="top">        </android.support.v4.view.PagerTabStrip>    </android.support.v4.view.ViewPager></LinearLayout>
view1.xml<?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">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="第一个界面" /></LinearLayout>

这里写图片描述

原创粉丝点击