dividerLine.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:layout_width="1dp"
android:layout_height="?android:attr/actionBarSize"
android:background="@android:color/darker_gray"/>
</LinearLayout>
actionLayout
,以显示分隔线。
activity_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/your_icon1"
android:icon="@drawable/image1"
android:title="@string/text1"
app:showAsAction="always"
/>
<item android:id="@+id/icon2TricktoShowDividerLine"
android:actionLayout="@layout/dividerLine"
app:showAsAction="always"
android:title="@string/text2" />
<item android:id="@+id/your_icon3"
android:icon="@drawable/icon"
android:title="@string/text3"
app:showAsAction="always" />
</menu>
actionLayout
创建 menuItem
的自定义布局,然后在 onCreateOptionsMenu
中获取 menuItem 视图并将其图标更改为垂直可绘制的图标。
layout_actionitem.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent">
<ImageView
android:id="@+id/actionItemImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="1dp"/>
</LinearLayout>
您的菜单 XML
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/item_save"
android:icon="@drawable/exit"
android:showAsAction="always"
android:actionLayout="@layout/layout_actionitem"
android:title=""/>
</menu>
onCreateOptionsMenu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
LinearLayout actionItemLayout = (LinearLayout) menu.findItem(R.id.item_save).getActionView();
ImageView iv = (ImageView)actionItemLayout.findViewById(R.id.actionItemImage);
iv.setBackgroundDrawable(getResources().getDrawable(R.drawable.icon_save));
}
app:showAsAction="always"
,其中第二个菜单项的drawable来源将是分隔线图片。 - Kapil Rajput