在动作栏(Action Bar)中添加和删除选项卡

创建碎片

这里使用内部类的方式在Activity 中创建碎片作为选项卡的内容(使用外部的类也是可以的)。首先写好碎片的布局tab_content.xml,然后在Activity 中实现一个自己的TabContentFragment类继承Fragment:

	private class TabContentFragment extends Fragment {

		private String message;

		public TabContentFragment(String message) {
			this.message = message;
		}

		@Override
		public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
			View fragView = inflater.inflate(R.layout.tab_content, container, false);
			...
			return fragView;
		}
	}

为了在Fragment 和选项卡之间建立联系,可以为Fragment 类定义一个私有成员message,用来保存选项卡信息,并在构造方法中初始化。


创建监听器

为了调用选项卡所需的回调函数,需要实现TabListener 接口,这里同样使用内部类的方式实现:

	private class MyTabListener implements TabListener {

		private TabContentFragment fragment;

		public MyTabListener(TabContentFragment fragment) {
			this.fragment = fragment;
		}

		@Override
		public void onTabSelected(Tab tab, FragmentTransaction ft) {
			ft.add(R.id.frame_layout, fragment);

		}

		@Override
		public void onTabUnselected(Tab tab, FragmentTransaction ft) {
			ft.remove(fragment);
		}

		@Override
		public void onTabReselected(Tab tab, FragmentTransaction ft) {
			// TODO Auto-generated method stub

		}

	}

有三个回调函数,分别在选项卡被选中、取消选中、再次被选中的时候调用。这里主要使用前两个。


创建选项卡,设置监听器

首先获取到ActionBar 的实例,并设置ActionBar 的导航模式:

actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

调用ActionBar 的nerTab() 方法可以创建选项卡,然后可以为每个选项卡设置标题和监听器,然后再使用ActionBar 的addTab() 方法添加选项卡:

				Tab tab = actionBar.newTab();
				tab.setText(title);
				tab.setTabListener(new MyTabListener(new TabContentFragment(title)));
				actionBar.addTab(tab);

可以用相同的方法添加多个选项卡。

使用ActionBar 的removeTabAt() 方法可以删除特定位置的选项卡,下面的例子删除了最后一个选项卡:

				actionBar.removeTabAt(actionBar.getTabCount() - 1);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值