【问题标题】:Option menu with lines between options.like a divider between options that are displayed in menu选项菜单,选项之间有线条。就像菜单中显示的选项之间的分隔线
【发布时间】:2016-11-24 11:52:37
【问题描述】:

在我的应用程序中,我有默认放置在顶部的选项菜单。当我们按下该菜单时,该菜单将在该菜单中打开,它们之间没有选项之间的线条。我想像分隔线一样显示它们之间的线条。

我尝试更改主题它可以工作,但我不会使用其他解决方案,因为如果我更改主题,它将完全影响我的应用程序。

它在 AppTheme 中工作,而不是在 AppTheme.AppCompat 中。

我希望它在不改变主题的情况下工作。

如果有人想要代码,我会发布它。

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:showDividers">beginning</item>
    <item name="android:divider">@color/action_bar_divider</item>
</style>

【问题讨论】:

  • 我在这里发布了一些解决方案,试试吧。
  • 我已经更新了我的答案检查它
  • 我接受答案谢谢是否可以减少菜单行的宽度。
  • yes.try dividermargin 你得到。?
  • dividermargin 不起作用。

标签: android menu


【解决方案1】:

有很多方法可以实现这一点。

解决方案 1 ==>您可以在菜单 xml 中进行分组,如下所示

<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=".MainActivity">

<group android:id="@+id/grp1">
<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">
<item
    android:id="@+id/navigation_item_2"
    android:icon="@drawable/ic_home"
    android:title="@string/navigation_item_2" /></group></menu>

解决方案 2==>您可以像下面这样自定义操作布局

<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/action_cart"
    android:title="cart"
    android:actionLayout="@layout/custom_layout"
    android:icon="@drawable/shape_notification"
    app:showAsAction="always"/>

和下面的actionLayout文件

<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"/>

解决方案 3 ==>您可以为特定活动制作自定义主题

<style name="CustomTheme" parent="android:Theme.Holo.Light">
<item name="android:actionBarStyle">@style/ActionBar</item></style>


 <style name="ActionBar"parent="android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">@color/action_bar_background</item>
<item name="android:showDividers">beginning</item>
<item name="android:divider">@color/action_bar_divider</item></style>

解决方案 4==>您可以为 DropdownlistView 自定义视图

<style name="PopupMenuListView" parent="@style/Widget.AppCompat.ListView.DropDown">
<item name="android:divider">#000000</item>
<item name="android:dividerHeight">1dp</item>
</style>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">   


 <item name="android:dropDownListViewStyle">@style/PopupMenuListView</item></style>

你可以参考这个链接add divider in menu item

【讨论】:

  • 我尝试了您建议的所有解决方案,但这些工作都没有,我仍然遇到问题。
  • 前两个解决方案我已经尝试过如果我们更改主题它会影响我的项目我想要保留 AppCompatTheme。
  • @BhargaviYamanuri 只需在您的应用主题中添加 beginning@color/action_bar_divider
  • 这也不起作用。以下是我的主题检查是否有任何问题。
  • 我尝试创建具有不同 id 的组然后也没有工作还有其他解决方案。从过去两天我尝试得到它但它没有发生,我尝试了谷歌和 stackoverflow 中的每一个建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-09
  • 2015-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多