【问题标题】:Change style of submenuitem更改子菜单的样式
【发布时间】:2014-12-21 11:44:15
【问题描述】:

我想为我的子菜单设置样式(如 this),但它不起作用。

我尝试使用 ("Android Action Bar Style Generator") 执行此操作,但这种方式也不适用于我。

这是我的代码...

Java:

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.meal, menu);
    MenuItem menuItem = menu.findItem(R.id.itemList);

    for(Item item : o.getItems()){
        menuItem.getSubMenu().add(item.getName());
    }

    return true;
}

menu.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="apppackage" >


    <item android:id="@+id/catList"
        android:title="CatList"
        android:icon="@drawable/ic_menu_moreoverflow"
        app:showAsAction="always">
    <menu></menu>

    </item>
</menu>

另外我试过这个......但它不起作用。

<style name="AppTheme"
    parent="@style/Theme.AppCompat.Light.DarkActionBar">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
    <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
    <!-- Support library compatibility -->
    <item name="actionBarStyle">@style/MyActionBar</item>
</style>

<!-- ActionBar styles -->
<style name="MyActionBar"
    parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
    <item name="android:background">@color/blue</item>

    <!-- Support library compatibility -->
    <item name="background">@color/blue</item>
    <item name="android:spinnerDropDownItemStyle">@style/MyWidget.DropDownItem.Spinner</item>
</style>

<style name="MyDropDownNav" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar">
    <item name="background">@color/blue</item>
    <item name="android:background">@color/blue</item>
    <item name="android:popupBackground">@color/blue</item>
    <item name="android:dropDownSelector">@color/blue</item>
</style>

<style name="MyWidget.DropDownItem.Spinner" parent="Widget.AppCompat.DropDownItem.Spinner">
    <item name="android:textColor">@color/white</item>
</style>

感谢您的帮助!

【问题讨论】:

    标签: android submenu android-appcompat android-actionbar-compat


    【解决方案1】:

    试试这个:

    <style name="AppTheme"
        parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <item name="android:actionBarStyle">@style/MyActionBar</item>
        <item name="android:actionDropDownStyle">@style/MyDropDownNav</item>
    
        <item name="android:actionBarWidgetTheme">@style/PopupWrapper</item>
        <!-- Support library compatibility -->
        <item name="actionBarStyle">@style/MyActionBar</item>
    </style>
    
    <!-- ActionBar styles -->
    <style name="MyActionBar"
        parent="@style/Widget.AppCompat.Light.ActionBar.Solid.Inverse">
        <item name="android:background">@color/blue</item>
    
        <!-- Support library compatibility -->
        <item name="background">@color/blue</item>
        <item name="android:spinnerDropDownItemStyle">@style/MyWidget.DropDownItem.Spinner</item>
    </style>
    
    <style name="MyDropDownNav" parent="@style/Widget.AppCompat.Spinner.DropDown.ActionBar">
        <item name="background">@color/blue</item>
        <item name="android:background">@color/blue</item>
        <item name="android:popupBackground">@color/blue</item>
        <item name="android:dropDownSelector">@color/blue</item>
    </style>
    
    <style name="MyWidget.DropDownItem.Spinner" parent="Widget.AppCompat.DropDownItem.Spinner">
        <item name="android:textColor">@color/white</item>
    </style>
    
    <style name="PopupWrapper" parent="@android:style/Theme.Holo">
        <item name="android:popupMenuStyle">@style/MyDropDownNav</item>
    </style>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 2013-11-24
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2011-03-24
      相关资源
      最近更新 更多