ViewPager(二)

来源:互联网 发布:elsevier旗下数据库 编辑:程序博客网 时间:2024/06/05 21:58

转载请注明出处http://blog.csdn.net/mr_leixiansheng/article/details/63251977

           


步骤:(与ListView相似)

1、List<T> list = new ArrayList<>(); 作为数据源

2、设置适配器PagerAdapter(或者自己定义适配器)

3、ViewPager添加适配

代码如下:

1、4个布局页面(因为都相同只贴一个)

<?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:text="这是第一个界面"        android:textSize="20dp"        android:gravity="center"        android:layout_width="match_parent"        android:layout_height="wrap_content" /></LinearLayout>

2、设置自定义适配器

package com.example.leixiansheng.myviewpager;import android.support.v4.view.PagerAdapter;import android.view.View;import android.view.ViewGroup;import java.util.List;/** * Created by Leixiansheng on 2017/3/18. */public class MyPagerAdapter extends PagerAdapter {    List<View> viewList;    List<String> titleList;    public MyPagerAdapter( List<View> viewList,List<String> titleList) {        this.viewList = viewList;        this.titleList = titleList;    }    /**     * 页面数量     */    @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) {        container.addView(viewList.get(position));        return viewList.get(position);    }    /**     * 销毁页面     */    @Override    public void destroyItem(ViewGroup container, int position, Object object) {        container.removeView(viewList.get(position));    }    /**     * 返回标题     */    @Override    public CharSequence getPageTitle(int position) {        return titleList.get(position);    }}


3、主程序实现ViewPager

<?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/view_pager"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentTop="true"        android:layout_alignParentLeft="true"        android:layout_alignParentStart="true">        <android.support.v4.view.PagerTitleStrip            android:id="@+id/pager_title"            android:layout_gravity="bottom"            android:layout_width="wrap_content"            android:layout_height="wrap_content">        </android.support.v4.view.PagerTitleStrip>        <android.support.v4.view.PagerTabStrip            android:id="@+id/tab"            android:layout_marginTop="100dp"            android:layout_width="wrap_content"            android:layout_height="wrap_content">        </android.support.v4.view.PagerTabStrip>    </android.support.v4.view.ViewPager></LinearLayout>

package com.example.leixiansheng.myviewpager;import android.graphics.Color;import android.support.v4.view.PagerTabStrip;import android.support.v4.view.PagerTitleStrip;import android.support.v4.view.ViewPager;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;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 ViewPager viewPager;    private List<View> viewList;    private List<String> titleList;    private MyPagerAdapter adapter;    //自行选择使用PagerTitleStrip、还是PagerTabStrip    private PagerTitleStrip titleStrip;    private PagerTabStrip tabStrip;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        viewPager = (ViewPager) findViewById(R.id.view_pager);        //监听        viewPager.setOnPageChangeListener(this);//        titleStrip = (PagerTitleStrip) findViewById(R.id.pager_title);        tabStrip = (PagerTabStrip) findViewById(R.id.tab);        viewList = new ArrayList<>();        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);        titleList = new ArrayList<>();        titleList.add("第一页");        titleList.add("第二页");        titleList.add("第三页");        titleList.add("第四页");        /**         * PagerTabStrip 属性设置         */        tabStrip.setTextColor(Color.RED);        tabStrip.setTabIndicatorColor(Color.BLUE);        tabStrip.setDrawFullUnderline(false);        adapter = new MyPagerAdapter(viewList,titleList);        viewPager.setAdapter(adapter);    }    @Override    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {    }    @Override    public void onPageSelected(int position) {        Toast.makeText(this, "当前是第"+(position+1)+"个页面",Toast.LENGTH_SHORT).show();    }    @Override    public void onPageScrollStateChanged(int state) {    }}




0 0
原创粉丝点击