禁用片段选项卡活动

时间:2014-02-11 18:04:30

标签: android actionbarsherlock

我有一个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;
    }
}

如需进一步说明,请询问。

1 个答案:

答案 0 :(得分:1)

要从标签栏中删除标签,您可以使用

getActivity().getSupportActionBar().removeTabAt(index)

如果要在该特定选项卡上禁用触摸事件,则需要为此选项卡创建自定义视图,禁用该视图的焦点。

修改

索里,忘了提。如果您使用的是API版本> = 11,则可以使用

getActivity().getActionBar()

如果您使用支持lib来实现兼容性,例如ActionBarSherlock或appCompat你需要首先投射它,在你的情况下

((SherlockFragmentActivity) getActivity()).getSupportActionBar()