利用viewPager 制作滑动页面 源码

看了老罗视频 利用viewPager 制作滑动页面 ,实现了一下

可以左右滑动 对应着上面的标题


activity_main.xml

<LinearLayout 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.support.v4.view.ViewPager
        android:id="@+id/viewpager"
       android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >   //需要把参数写到<>内 比较特殊

        <android.support.v4.view.PagerTitleStrip   //标题
            android:id="@+id/pagertitle"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="top" >
        </android.support.v4.view.PagerTitleStrip>
    </android.support.v4.view.ViewPager>

</LinearLayout>
然后新建3个布局 作为三个滑动页面

取名TAB1,TAB2,TAB3

布局里随便放一些控件  我放的是图片

然后回到

MainActivity




首先 变量

public class MainActivity extends Activity {

	private ViewPager viewPager; // ViewPager是android扩展包v4包中的类,这个类可以让用户左右切换当前的view
	private PagerTitleStrip pagerTitleStrip;// 滑动mei一页的标题
	private List<View> list;// 表示装载滑动的布局
	private List<String> titleList;//放标题
然后是Oncaeate中的  
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewPager = (ViewPager) this.findViewById(R.id.viewpager);
		pagerTitleStrip = (PagerTitleStrip) this.findViewById(R.id.pagertitle);
		// 动态加载布局
		View view1 = LayoutInflater.from(MainActivity.this).inflate(
				R.layout.tabbb1, null);
		View view2 = LayoutInflater.from(MainActivity.this).inflate(
				R.layout.tab2, null);
		View view3 = LayoutInflater.from(MainActivity.this).inflate(
				R.layout.tab3, null);
将三个布局加载
		list = new ArrayList<View>();
		list.add(view1);
		list.add(view2);
		list.add(view3);

		titleList = new ArrayList<String>();
		titleList.add("特价秒杀");
		titleList.add("一块包邮");
		titleList.add("全场两块");
		viewPager.setAdapter(new MyAdapter()); // 1)(跟这行无关)ViewPager类直接继承了ViewGroup类,所有它是一个容器类,可以在其中添加其他的view类。

		// 2)(跟这行无关)ViewPager类需要一个PagerAdapter适配器类给它提供数据。必须重写最少4个方法
	}
接下来新建类MyAdapter  需要重写4个方法 有的过时的 统一用(ViewGroup cotainer,xxxxxxx)那个 方法

class MyAdapter extends PagerAdapter {

		@Override
		public int getCount() { // 返回布局个数
			// TODO 自动生成的方法存根
			return list.size();
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) { //
			// TODO 自动生成的方法存根
			
			((ViewPager) container).removeView(list.get(position));
		}

		@Override
		public CharSequence getPageTitle(int position) {
			// TODO 自动生成的方法存根
			return titleList.get(position);
		}

		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			// TODO 自动生成的方法存根
			((ViewPager) container).addView(list.get(position));
			return list.get(position);
		}

		@Override
		public boolean isViewFromObject(View arg0, Object arg1) {
			// TODO 自动生成的方法存根
			return arg0 == arg1;    
		}

	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值