Bootstrap

Android 简单介绍原生ToolBar和Menu的使用

 layout中的使用,ToolBar和Menu可以结合使用

<androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar_list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

 showAsAction属性介绍:

1).alaways:这个值会使菜单项一直显示在ToolBar上。

2).ifRoom:如果有足够的空间,这个值会使菜单显示在ToolBar上。

3).never:这个值表示菜单永远不会出现在ToolBar上显示(折叠)。

4).withText:这个值使菜单和它的图标,菜单文本一起显示。

Toolbar toolbar = findViewById(R.id.toolbar);
        toolbar.setTitle("标题");
        toolbar.setSubtitle("子标题");
        toolbar.setNavigationIcon(R.drawable.menu);
        toolbar.setLogo(R.drawable.menu);
        toolbar.inflateMenu(R.menu.list_menu);//设置menu
//创建menu文件
<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">
    <item
        android:id="@+id/delete"
        android:title="Delete"
        android:icon="@drawable/background_color"
        app:actionViewClass="android.widget.SearchView"//显示其他View
        app:showAsAction="withText|ifRoom"/>
    <item
        android:id="@+id/delete2"
        android:title="Delete"
        android:icon="@drawable/background_color"
        app:showAsAction="withText|ifRoom"/>
    <item
        android:id="@+id/like"
        android:title="Like"
        android:showAsAction="always"
        tools:ignore="AppCompatResource"/>
</menu>

 此时会出现点击折叠菜单后item的图标会有无法显示的情况(这可能是个bug)

 

 将一级菜单变成二级菜单就会显示出来

<?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">
    <item
        android:id="@+id/settings"
        android:icon="@drawable/menu_b"
        android:title="测试"
        app:showAsAction="always">
        <menu>//二级菜单
            <item
                android:id="@+id/guilde"
                android:icon="@drawable/delete"
                android:title="@string/app_name"
                app:showAsAction="never" />
        </menu>
    </item>
</menu>

;