片段工具栏不显示菜单按钮

时间:2019-03-19 02:38:58

标签: android

我有一个底部导航栏,顶部带有一个工具栏,我试图显示一个播放菜单按钮。但是,它没有显示在底部的工具栏上,而是显示在主工具栏上的设置菜单所在的位置。

    CoordinatorLayout coordinatorLayout = (CoordinatorLayout) v.findViewById(R.id.bottom_sheet_coor);



    final View bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet);

    final BottomSheetBehavior mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
    Toolbar toolbar = (Toolbar) coordinatorLayout.findViewById(R.id.bottomToolBar);
    setHasOptionsMenu(true);

上面的代码在片段中,这是选项菜单方法:

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

这是菜单文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_play_bar"
        android:orderInCategory="100"
        android:icon="@drawable/ic_play_arrow"
        android:title="@string/play_button"
        app:showAsAction="always" />
</menu>

这是底部导航的xml,我希望在其中显示工具栏:

    <android.support.v7.widget.Toolbar
        android:id="@+id/bottomToolBar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        android:background="@color/colorPrimary">

        <android.support.constraint.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/toolbar_title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:layout_marginBottom="16dp"
                android:gravity="center_horizontal"
                android:text="Play now!"
                android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent" />
        </android.support.constraint.ConstraintLayout>


    </android.support.v7.widget.Toolbar>

对于为什么将其显示在主导航抽屉工具栏中而不是底部工具栏中的任何帮助,将不胜感激

2 个答案:

答案 0 :(得分:2)

您正在混淆这里的内容。这就是为什么要得到这个。

这是示例代码块。放在任何FrameLayout中。

<android.support.design.widget.BottomNavigationView
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:background="?android:attr/windowBackground"
        app:menu="@menu/navigation" />

此处app:menu="@menu/navigation"应该像DrawerLayout一样为该小部件提供菜单。您不需要显式地对此进行膨胀。现在,将您的播放菜单项放在此导航菜单中,瞧!

onCreateOptionsMenu(..)用于将菜单添加到工具栏

希望这会有所帮助!

答案 1 :(得分:0)

 override fun onCreate(savedInstanceState: Bundle?) {
     super.onCreate(savedInstanceState)
     setHasOptionsMenu(true)
 }

您没有在片段中编写此重写的方法。 希望这会有所帮助!!!