ViewPager引导页

来源:互联网 发布:8090端口 编辑:程序博客网 时间:2024/05/21 11:01

ViewPager引导页

viewPager引导页可以方便的实现页面的左右滑动的切换,可以作为应用程序的引导页,也可以作为整个应用程序的框架。

首先创建引导页的首页:

    public class MainActivity extends AppCompatActivity {    private ViewPager viewPager ;  //    private ViewPageAdapter viewPageAdapter ;    private List<View> views ;   //View集合,左右滑动的其实是一个View的集合    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        initViews();    }    private void initViews(){        LayoutInflater inflater = LayoutInflater.from(this);        views = new ArrayList<>();        //加添View的view。        views.add(inflater.inflate(R.layout.one,null));        views.add(inflater.inflate(R.layout.two,null));        views.add(inflater.inflate(R.layout.three,null));        //为ViewPager添加适配器        ViewPageAdapter adapter = new ViewPageAdapter(views,this);        viewPager = (ViewPager) findViewById(R.id.viewpager);        viewPager.setAdapter(adapter);    }}

ViewPager 的适配器类

public class ViewPageAdapter extends PagerAdapter {    private List<View> views ;    private Context context ;    public ViewPageAdapter(List<View> views, Context context) {        this.views = views;        this.context = context;    }    //返回Views的条目总数    @Override    public int getCount() {        if (views!=null){            return views.size();        }        return  0 ;    }    //删除页面    @Override    public void destroyItem(View container, int position, Object object) {        ((ViewPager) container).removeView(views.get(position));    }    //初始化界面    @Override    public Object instantiateItem(View arg0, int position) {        ((ViewPager) arg0).addView(views.get(position), 0);        return views.get(position);    }   //判断是否是需要的View对象    @Override    public boolean isViewFromObject(View view, Object object) {        return (view==object);    }}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context="com.it123.pageadapter.MainActivity">    <android.support.v4.view.ViewPager        android:id="@+id/viewpager"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="#fff">    </android.support.v4.view.ViewPager></RelativeLayout>

one.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical" android:layout_width="match_parent"    android:layout_height="match_parent">    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/imageView"        android:src="@mipmap/ic_launcher"        android:layout_gravity="center_horizontal" />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textAppearance="?android:attr/textAppearanceLarge"        android:text="第一页"        android:id="@+id/textView"        android:layout_centerVertical="true"        android:layout_centerHorizontal="true" /></RelativeLayout>

two.xml 和 three.xml 的代码和one.xml 的代码一致。不在重复。
运行即可实现左右滑动切换的效果

0 0
原创粉丝点击