将工具栏设置为FragmentActivity

时间:2016-05-09 09:30:56

标签: android android-fragments android-actionbar android-viewpager android-toolbar

我有很多问题,我显然已经尝试但没有帮助。

在启动画面后,我的应用会显示viewPager的活动。我将此活动称为FragmentContainer,因为它包含viewPager。现在只是因为此FragmentContainer扩展FragmentAcitity我无法使用setSupportActionBar()来设置我的自定义工具栏。

fragment_container.xml 是这样的:

<RelativeLayout>

    <com.astuetz.PagerSlidingTabStrip
        android:background="?attr/colorPrimary"
        android:id="@+id/tabs"
        android:layout_below="@id/toolbar_top_fc"
        android:layout_height="?attr/actionBarSize"
        android:layout_width="match_parent"
        android:textColorPrimary="@android:color/white"
        app:pstsIndicatorColor="@color/colorAccent"
        app:pstsPaddingMiddle="true"
        app:pstsTabPaddingLeftRight="24dp" />

    <android.support.v4.view.ViewPager
        android:id="@+id/pager"
        android:layout_below="@id/tabs"
        android:layout_height="match_parent"
        android:layout_width="match_parent">

</RelativeLayout>

FragmentContanier.java

public class FragmentContainer extends FragmentActivity {

    ViewPager viewPager = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_container);

        viewPager = (ViewPager) findViewById(R.id.pager);
        FragmentManager fragmentManager = getSupportFragmentManager();
        viewPager.setAdapter(new MyAdapter(fragmentManager));
        viewPager.setCurrentItem(1);

        //Tabs
        PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) findViewById(R.id.tabs);
        tabs.setViewPager(viewPager);
    }
}

class MyAdapter extends FragmentPagerAdapter {

    public MyAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        Fragment fragment = null;
        if (position == 0) {
            fragment = new FragmentEdit();
        } else if (position == 1) {
            fragment = new FragmentMain();
        } else if (position == 2) {
            fragment = new FragmentSavedMessages();
        }
        return fragment;
    }

    @Override
    public int getCount() {
        return 3;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        CharSequence title = null;
        if (0 == position) {
            title = "Edit";
        } else if (1 == position) {
            title = "Main";
        } else if (2 == position) {
            title = "Save";
        }
        return title;
    }
}

我需要帮助实现自定义actionBar。请假装。

任何帮助都将不胜感激。 随意建议编辑。

1 个答案:

答案 0 :(得分:1)

您无法为片段创建单独的工具栏。但您可以根据您的片段自定义父活动工具栏,在片段sethasoptionsmenu(true);的onCreateView中设置并在

中扩充您的自定义菜单项
@Override
public void onCreateOptionsMenu(
      Menu menu, MenuInflater inflater) {
   inflater.inflate(R.menu.activity_itemdetail, menu);
}