android – 如何在片段工具栏中设置菜单项?

我的Activity中有一个片段,片段有自己的工具栏.像这样:

Image

这是片段的布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.hometsolutions.space.Fragments.ControlFragment">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <android.support.v7.widget.Toolbar
            android:id="@+id/Setup_next_toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            android:elevation="4dp"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

        <android.support.v7.widget.RecyclerView
            android:id="@+id/recycler_view_setup_next"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:layout_constraintTop_toBottomOf="@+id/setup_next_recycler" />

    </LinearLayout>
</FrameLayout>

我想在Setup_next_toolbar上添加菜单.不在MainActivity工具栏上.

我在片段上做了这个:

在onCreate上:setHasOptionsMenu(true);

然后

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    inflater.inflate(R.menu.Setup_next_menu, menu);
}

但它在MainActivity tolbar上添加了菜单.如何在Setup_next_toolbar上设置menuItem?

解决方法:

可能是为时已晚,但只是解决了同样的问题并认为你想知道.你只需要设置活动工具栏

  ((MainActivity) getActivity()).setSupportActionBar(toolbar);
        setHasOptionsMenu(true);

这将在片段中触发onCreateOptionsMenu

上一篇:android 通用Toolbar


下一篇:android – 如何删除工具栏周围的边框?