如何在appbar上显示项目

ibrsph3r  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(383)

试图在工具栏上创建项,但它们没有显示。我已经把所有必要的代码都贴在下面了。我的工具栏显示正确,但我的项目不显示,我不知道为什么。任何帮助都将不胜感激
主菜单.xml

<?xml version="1.0" encoding="utf-8"?>
<menu
        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"
        tools:context=".MainActivity">
    <item
            android:id="@+id/left"
            android:title="@string/app_name"
            android:icon="@drawable/ic_left"
            app:showAsAction="always"/>
    <item
            android:id="@+id/right"
            android:title="@string/app_name"
            android:icon="@drawable/ic_right"
            app:showAsAction="ifRoom"/>
</menu>

app\ u bar.xml文件

<?xml version="1.0" encoding="utf-8"?>
<androidx.appcompat.widget.Toolbar
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize" xmlns:app="http://schemas.android.com/apk/res-auto"
        android:id="@+id/readerBar"
        android:background="@color/colorPrimaryDark"
        app:title="@string/app_name"
        android:theme="@style/ThemeOverlay.AppCompat.Dark">
</androidx.appcompat.widget.Toolbar>

活动\u main.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
        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=".MainActivity">

    <include
            layout="@layout/app_bar"
            android:id="@+id/include" android:layout_height="wrap_content" android:layout_width="match_parent"/>

主活动.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    toolbar = (Toolbar) findViewById(R.id.readerBar);
    setSupportActionBar(toolbar);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

这是我得到的结果:

oo7oh9g9

oo7oh9g91#

Appbar 谷歌设置的限制使其难以工作。所以我有另一个建议给你,你可以换你的 Appbar 用一个 RelativeLayout 或者任何你想要的父布局。
它更好,因为你可以定制任何你想要的方式。例如,可以通过以下方式添加图标 imageView 然后控制它们。
如果你想让你父母的身高和你的一样 Appbar 像这样设置布局高度。 android:layout_height="?android:attr/actionBarSize"

xdyibdwo

xdyibdwo2#

您的代码+菜单设置看起来不错,我认为菜单项没有显示,因为这部分: setSupportActionBar(toolbar); 失败(toolbar==null);因为它在一个包含id的布局中。
当你移除 android:id="@+id/include" 工具栏应该正确设置并显示项目。

相关问题