ViewPage第二课为ViewPage添加标题

在第一课

学前准备:掌握ViewPage第一课http://blog.csdn.net/wei_chong_chong/article/details/50468832
为ViewPage添加标题:
PageTabStrip是PageTitleStrip的子类
PageTabStrip的使用与PageTitleStrip完全一样,
实现效果,pageTabStrip的标题文字带有Indicator,并且可以通过点击标题切换页面的显示。
使用直接把下面的第一步中的<android.support.v4.view.PagerTitleStrip换成android.support.v4.view.PagerTabStrip就行了

布局文件:

在<android.support.v4.view.ViewPager节点下添加子节点:


 

<android.support.v4.view.PagerTabStrip
            android:layout_width="fill_parent"
            android:layout_height="50dp" >
        </android.support.v4.view.PagerTabStrip>

具体如下:

 <android.support.v4.view.ViewPager
        android:id="@+id/vp_viewpage"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_above="@+id/rg_tab" >

        <android.support.v4.view.PagerTabStrip
            android:layout_width="fill_parent"
            android:layout_height="50dp" >
        </android.support.v4.view.PagerTabStrip>
    </android.support.v4.view.ViewPager>


第二步:MainActivity中添加

private List<String> titles;
并初始化
titles = new ArrayList<String>();
titles.add("page01");
titles.add("page02");
titles.add("page03");
titles.add("page04");
并在内部类中实现方法:




@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
return titles.get(position);
}


具体如下:

public class MainActivity extends Activity {
	private ViewPager viewpager;
	private List<View> children;

	private List<String> titles;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		viewpager = (ViewPager) findViewById(R.id.vp_viewpage);
		children = new ArrayList<View>();
		children.add(LayoutInflater.from(this).inflate(R.layout.page01, null));
		children.add(getLayoutInflater().inflate(R.layout.page02, null));
		children.add(getLayoutInflater().inflate(R.layout.page03, null));
		children.add(getLayoutInflater().inflate(R.layout.page04, null));
		titles = new ArrayList<String>();
		titles.add("page01");
		titles.add("page02");
		titles.add("page03");
		titles.add("page04");
		viewpager.setAdapter(new InnerPagerAdapter());
	}
	public class InnerPagerAdapter extends PagerAdapter{
		@Override
		public CharSequence getPageTitle(int position) {
			// TODO Auto-generated method stub
			return titles.get(position);
		}

		@Override
		public int getCount() {
			//获取子级布局的数量

			return children.size();//返回viewpage容器中子级布局的个数,
		}

		@Override
		public boolean isViewFromObject(View view, Object object) {
			// 判断某个View对象是否为当前被添加到ViewPager容器中的对象
			return view == object;
		}

		//下面两个方法是PageAdapter中必须实现的非抽象方法
		@Override
		public Object instantiateItem(ViewGroup container, int position) {
			// 实例化ViewPager容器中指定的position位置需要显示的View对象
			View view = children.get(position);
			container.addView(view);


			return view;
		}

		@Override
		public void destroyItem(ViewGroup container, int position, Object object) {
			//在ViewPager中移除指定的position位置的View对象
			container.removeView(children.get(position));
		}
	}

}


ViewPage2是一个AndroidX库中的组件,用于在屏幕上展示多个Fragment页面。下面是一个简单的例子,演示如何使用ViewPage2来显示两个Fragment页面。 1. 创建两个Fragment页面 创建两个Fragment页面,分别命名为FragmentOne和FragmentTwo,这里不再赘述。 2. 创建一个FragmentPagerAdapter 在主Activity中,创建一个FragmentPagerAdapter,用于管理Fragment页面。示例代码如下: ``` class MyPagerAdapter(fragmentManager: FragmentManager) : FragmentStateAdapter(fragmentManager, lifecycle) { override fun getItemCount(): Int { return 2 // 返回Fragment页面的数量 } override fun createFragment(position: Int): Fragment { return when (position) { 0 -> FragmentOne() // 返回第一个Fragment页面 1 -> FragmentTwo() // 返回第二个Fragment页面 else -> throw IllegalStateException("Unexpected position $position") } } } ``` 3. 在XML布局文件中添加ViewPager2 在XML布局文件中添加ViewPager2组件,示例代码如下: ``` <androidx.viewpager2.widget.ViewPager2 android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="match_parent" /> ``` 4. 在Activity中设置ViewPager2的Adapter 在主Activity中设置ViewPager2的Adapter,示例代码如下: ``` val viewPager2 = findViewById<ViewPager2>(R.id.view_pager) val pagerAdapter = MyPagerAdapter(supportFragmentManager) viewPager2.adapter = pagerAdapter ``` 5. 运行程序 运行程序,就可以看到ViewPager2在屏幕上显示两个Fragment页面了。用户可以通过滑动屏幕或者点击Tab栏来切换不同的页面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值