每个片段的自定义操作栏 - 不是菜单

时间:2014-03-10 11:23:08

标签: java android android-fragments actionbarsherlock android-menu

首先让我解释一下:我的应用程序计划通过滑动导航使用3个活动。我为每一个使用不同的sherlock动作条。

但由于无法在活动之间滑动,唯一的解决方案是使用片段。我实现了这一点,但我遇到了一个问题:是否可以为每个片段自定义操作栏?因为现在我只被一个人困住了。我用谷歌搜索,每个解决方案都基于菜单,但是可以将自定义样式应用于菜单和碎片吗?

很抱歉,如果这已经得到解答,我还没有在网上找到任何解决方案。

是否可以使用这种方法?

公共类ControlActivity扩展了SherlockFragmentActivity {

ActionBar actionBar;
View actionBarView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.viewpager_layout);
    ViewPager pager = (ViewPager) findViewById(R.id.viewpager);
    pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));
    actionBar = getSupportActionBar();
    actionBarView= getLayoutInflater().inflate(
            R.layout.friend_list_ab_layout, null);
    actionBar.setCustomView(actionBarView);


}
private class MyPagerAdapter extends FragmentPagerAdapter {

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }
    @Override
    public SherlockFragment getItem(int pos) {
        switch(pos) {

            case 0:
                actionBarView= getLayoutInflater().inflate(
                        R.layout.friend_list_ab_layout, null);
                actionBar.setCustomView(actionBarView);
                return MainActivity.newInstance();
            case 1:
                actionBarView= getLayoutInflater().inflate(
                        R.layout.news_feed_ab_layout, null);
                actionBar.setCustomView(actionBarView);
                return NewsFeed.newInstance();
            default:
                actionBarView= getLayoutInflater().inflate(
                        R.layout.friend_list_ab_layout, null);
                actionBar.setCustomView(actionBarView);
                return MainActivity.newInstance();
        }
    }
    @Override
    public int getCount() {
        return 2;
    }
}

}

1 个答案:

答案 0 :(得分:0)

你可以构建自己的操作栏,我的意思是你应该创建一个动态片段并在操作栏中使用它并将其设置为操作栏,使用框架布局作为片段的plcaeholder当你滑动片段时,用新的片段替换动作栏片段