【问题标题】:Change background style of a menu更改菜单的背景样式
【发布时间】:2015-09-14 15:11:03
【问题描述】:

我有一个菜单,我想应用以下背景样式:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >    
    <corners android:radius="10dip" />
    <stroke android:color="@color/pink" 
            android:width="6dip"></stroke>
    <solid android:color="@color/white"></solid>
</shape>

我有一个Java 类只是用来处理与菜单相关的操作。这个类扩展了ActionBarActivity

我的菜单代码如下:

<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="com.android.ExtendedActivity">

 <item android:id="@+id/action_share"
     android:title="Share"
     android:orderInCategory="100"/>

 <item android:id="@+id/action_about"
     android:title="About"
     android:orderInCategory="100"/>
 </menu>

有谁知道如何为我的菜单设置背景样式?

【问题讨论】:

  • 看看question 中点赞最多的答案。我认为这是一个类似的问题。
  • 您必须更改 res/values/styles/style.xml 中的样式,但如果您尝试更改抽屉菜单则不同!首先,您必须使用 AppCompatActivity,因为 ActionBarActivity 已被弃用,然后您必须创建可以设置菜单样式的drawer_layout.xml。 =)
  • 我为您找到了一些类似的问题stackoverflow.com/questions/28591447/… 和这个stackoverflow.com/questions/28352963/…,这是一个很好的起点developer.android.com/guide/topics/ui/menus.html。我希望你能找到适合你的解决方案! ^^
  • @MachoProgrammer 谢谢,但它并没有解决我的问题,因为主题只能应用于菜单项而不是整个菜单。尽管如此,我还是应用了 AppCompatActivity 而不是 ActionBarActivity。

标签: android


【解决方案1】:

在你的风格中,你会有这样的东西

<style name="YourTheme.Main" parent="Theme.AppCompat.Light.NoActionBar">
... <item name="android:activatedBackgroundIndicator">@drawable/selectable_background</item> ... </style> 

在你的drawable中像

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@color/your_color" android:state_pressed="true"/> <item android:drawable="@drawable/selected_background" android:state_selected="true"/> <item android:drawable="@drawable/selected_background" android:state_checked="true"/> </selector> 

最后你可以像这样使用你的背景作为 selected_background

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <corners android:radius="10dip" /> <stroke android:color="@color/pink" android:width="6dip"></stroke> <solid android:color="@color/white"></solid> </shape>.

对于非常简单的解释我很抱歉,但是没有完整的代码演示应用程序非常棘手!我希望这会有所帮助:-)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多