我有一个SherlockFragmentActivity
的课程,里面有两个SherlockFragment
。
当我进入课程时,它会自动将我放入第一个标签(Tab1“FragmentTab1”),然后我可以通过单击选项卡转到另一个标签(Tab2“FrgmentTab2”)。如何禁用标签?
我想从Tab1(aaa)禁用Tab2(bbb)。
我的主要课程代码:
public class MainClass extends SherlockFragmentActivity {
ActionBar.Tab Tab1,Tab2;
Fragment fragmentTab1 = new FragmentTab1();
Fragment fragmentTab2 = new FragmentTab2();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mm);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ActionBar actionBar = getSupportActionBar();
// Create Actionbar Tabs
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Set Tab Icon and Titles
Tab1 = actionBar.newTab().setText("aaa");
Tab2 = actionBar.newTab().setText("bbb");
// Set Tab Listeners
Tab1.setTabListener(new TabListener(fragmentTab1));
Tab2.setTabListener(new TabListener(fragmentTab2));
// Add tabs to actionbar
actionBar.addTab(Tab1);
actionBar.addTab(Tab2);
}
我的标签代码(两个类目前都有相同的清空代码)
public class FragmentTab1 extends SherlockFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragmenttab2, container, false);
return rootView;
}
}
如需进一步说明,请询问。
答案 0 :(得分:1)
要从标签栏中删除标签,您可以使用
getActivity().getSupportActionBar().removeTabAt(index)
如果要在该特定选项卡上禁用触摸事件,则需要为此选项卡创建自定义视图,禁用该视图的焦点。
getActivity().getActionBar()
如果您使用支持lib来实现兼容性,例如ActionBarSherlock或appCompat你需要首先投射它,在你的情况下
((SherlockFragmentActivity) getActivity()).getSupportActionBar()