【问题标题】:Show divider line in between menu items of native menu在本机菜单的菜单项之间显示分隔线
【发布时间】:2017-04-07 09:08:40
【问题描述】:

我想编辑菜单标题之间的水平线,我参考了很多解决方案,但没有一个能够找到我的解决方案。请帮我找到解决方案

<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<group android:id="@+id/grp1" android:checkableBehavior="single" >
    <item
        android:id="@+id/contact"
        android:icon="@mipmap/contact"
        android:title="Contact Us"
        android:checked="true"
        app:showAsAction="collapseActionView"/>
</group>
<group android:id="@+id/grp2" android:checkableBehavior="single" >
    <item
        android:id="@+id/latest"
        android:icon="@mipmap/latest"
        android:title="Latest ***"
        android:checked="true"
        app:showAsAction="collapseActionView"/>
</group>
<group android:id="@+id/grp3" android:checkableBehavior="single" >
<item
    android:id="@+id/my_picture"
    android:icon="@mipmap/my_picture"
    android:checked="true"
    android:title="My *** Pictures"
    app:showAsAction="collapseActionView"/>

提前谢谢你:)

【问题讨论】:

  • 如果您使用 LinearLayout 创建菜单项。然后只需将 attr 分隔符添加到它。

标签: android menuitem divider overflow-menu


【解决方案1】:

你应该使用动作布局

<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=".LandingActivity">
    <item
        android:id="@+id/action_cart"
        android:title="cart"
        android:actionLayout="@layout/cart_update_count"
        android:icon="@drawable/shape_notification"
        app:showAsAction="always"/>
</menu>

然后动作布局可以有带分隔符的文本视图。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <View
        android:id="@+id/divider"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/divider"/>

    <TextView
        android:id="@android:id/text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?android:attr/selectableItemBackground"
        android:gravity="center_vertical"          
        android:textAppearance="?attr/textAppearanceListItemSmall"/>

</LinearLayout>

然后你可以在代码中添加点击监听

【讨论】:

    【解决方案2】:

    自定义您的 AppTheme。试试这个。

    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!--- Customize popmenu -->
        <item name="android:dropDownListViewStyle">@style/popup</item>
    </style>
    
    <style name="popup" parent="Widget.AppCompat.ListView.DropDown">
            <item name="android:divider">@color/colorPrimary</item>
            <item name="android:dividerHeight">1dp</item>
            <item name="android:textColor">@color/colorPrimary</item>
            <item name="android:itemBackground">@android:color/white</item>
    </style>
    

    【讨论】:

      【解决方案3】:
      <menu xmlns:android="http://schemas.android.com/apk/res/android"
               <group android:id="@+id/grp1" android:checkableBehavior="single" >
                  <item
                      android:id="@+id/navigation_item_1"
                      android:checked="true"
                      android:icon="@drawable/ic_home"
                      android:title="@string/navigation_item_1" />
              </group>
       <group android:id="@+id/grp2" android:checkableBehavior="single" >
                  <item
                      android:id="@+id/navigation_item_1"
                      android:checked="true"
                      android:icon="@drawable/ic_home"
                      android:title="@string/navigation_item_1" />
              </group>
          </menu>
      

      试试这个

      【讨论】:

      • 它只是在 title 的右侧创建了一个圆形,抱歉但不起作用
      • 把每个项目放在不同的组里肯定会起作用的
      • 你好 hasmukh 我为不同的项目选择了不同的组,但结果你可以在这个imgh.us/rsz_device-2017-04-07-155743.png上看到
      • 可能是你的分隔线颜色必须改变风格或主题
      • 谢谢hasmukh,但没有这样的风格可以帮助解决这个问题
      猜你喜欢
      • 2016-11-24
      • 1970-01-01
      • 2014-08-31
      • 2016-11-09
      • 2017-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多