基本上我们使用带有图标的工具栏菜单,有时我们也一起使用图标/文字。图标和文本水平显示如下图所示
在正常情况下会发生这种情况,但我想像下面的图像一样垂直显示菜单图标/文字
我用这个xml完成了xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
android:orientation="horizontal"
android:padding="@dimen/default_margin">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/bg_timeline"
android:layout_weight="1"
android:gravity="center"
android:text="@string/label_timeline" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/default_margin"
android:drawableTop="@drawable/ic_about_large"
android:layout_weight="1"
android:gravity="center"
android:text="@string/label_about" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_achivement_active"
android:layout_marginLeft="@dimen/default_margin"
android:layout_weight="1"
android:gravity="center"
android:text="@string/label_achievements" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableTop="@drawable/ic_more"
android:background="?selectableItemBackground"
android:gravity="center"
android:layout_marginLeft="@dimen/default_margin"
android:layout_weight="1"
android:text="@string/label_more" />
</LinearLayout>
我的问题是,如果菜单项在每个图标的整体下面放置像Text,我该如何实现工具栏/操作栏。反正有吗?
答案 0 :(得分:5)
您可以使用工具栏方法 inflateMenu 来扩充自定义菜单布局。下面是一个小片段:
<?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"> <item android:id="@+id/your_id" android:title="@string/your_string" android:icon="@drawable/your_menu_icon" app:actionLayout="@layout/your_custom_menu_layout" app:showAsAction = "always" /> </menu>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" android:paddingRight="10dp"> <ImageView android:layout_width="30dp" android:layout_height="30dp" android:gravity="center" android:paddingLeft="5dp" android:paddingRight="5dp" android:src="@drawable/your_menu_icon" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:paddingLeft="0dp" android:text="your_text" android:textColor="@color/white" android:textSize="9dp" /> </LinearLayout>
your_toolbar.inflateMenu(R.menu.your_menu);
菜单menu = your_toolbar.getMenu();
查看your_menu_view = menu.findItem(R.id.your_id).getActionView(); your_menu_view.setOnClickListener(new View.OnClickListener(){ @覆盖 public void onClick(查看v){ }});