Android 工具栏将菜单项的图标移动到右侧
Android Toolbar move icon of MenuItem to right side
我在 QuickPic 这样的应用程序中看到过,他们设法将图标放在右侧
我尝试做同样的事情,但后来我意识到图标似乎是硬编码显示在左侧的。
下面是我的menu.xml
<menu>
<item android:id="@+id/sort_by_name"
android:title="By name"
android:icon="@drawable/ic_arrow_downward_gray_24dp"
/>
<item android:id="@+id/sort_by_date"
android:title="By date"/>
<item android:id="@+id/sort_by_path"
android:title="By path"/>
</menu>
那么有什么办法可以把图标移到右边吗?
XML 中没有这样的选项,但您可以在 Java/Kotlin 中进行。首先尝试在 onCreateOptionsMenu
中使用 ImageSpan
和 re-set 整个文本。 HERE 你有一些如何处理这个跨度的例子
您始终可以使用 android:actionLayout
并创建您自己的视图,以您想要的方式呈现。
示例:
your_custum_view:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvMenu"
android:clickable="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:drawableRightCompat="@drawable/ic_up_arrow"
android:drawablePadding="@dimen/margin_medium"
android:focusable="true"
android:gravity="center"
android:padding="6dp"
android:orientation="vertical"
android:text="By Name" />
your_menu:
<item
android:id="@+id/nv_create"
android:icon="@drawable/ic_create_dw"
android:title="Create"
app:actionLayout="@layout/menu_sign"
app:showAsAction="always" />
我在 QuickPic 这样的应用程序中看到过,他们设法将图标放在右侧
我尝试做同样的事情,但后来我意识到图标似乎是硬编码显示在左侧的。
下面是我的menu.xml
<menu>
<item android:id="@+id/sort_by_name"
android:title="By name"
android:icon="@drawable/ic_arrow_downward_gray_24dp"
/>
<item android:id="@+id/sort_by_date"
android:title="By date"/>
<item android:id="@+id/sort_by_path"
android:title="By path"/>
</menu>
那么有什么办法可以把图标移到右边吗?
XML 中没有这样的选项,但您可以在 Java/Kotlin 中进行。首先尝试在 onCreateOptionsMenu
中使用 ImageSpan
和 re-set 整个文本。 HERE 你有一些如何处理这个跨度的例子
您始终可以使用 android:actionLayout
并创建您自己的视图,以您想要的方式呈现。
示例:
your_custum_view:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:orientation="vertical">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tvMenu"
android:clickable="true"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
app:drawableRightCompat="@drawable/ic_up_arrow"
android:drawablePadding="@dimen/margin_medium"
android:focusable="true"
android:gravity="center"
android:padding="6dp"
android:orientation="vertical"
android:text="By Name" />
your_menu:
<item
android:id="@+id/nv_create"
android:icon="@drawable/ic_create_dw"
android:title="Create"
app:actionLayout="@layout/menu_sign"
app:showAsAction="always" />