其他分享
首页 > 其他分享> > AppCompatActivity自定义ActionBar按钮不会出现在Android 4.1.2上

AppCompatActivity自定义ActionBar按钮不会出现在Android 4.1.2上

作者:互联网

它在5.1上工作正常,但在4.1.2上没有

我错过了什么?

这是活动xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:myApp="http://schemas.android.com/apk/res-auto">
    <item android:id="@+id/transfer"
        android:title="@string/transfer"
        android:icon="@drawable/ic_transfer"
        myApp:showAsAction="always" />
    <item android:id="@+id/refresh"
        android:title="@string/refresh"
        android:icon="@drawable/ic_refresh"
        myApp:showAsAction="always" />
    <item android:id="@+id/about"
        android:title="@string/about"
        android:icon="@android:drawable/ic_menu_info_details"
        android:orderInCategory="100"
        myApp:showAsAction="never" />
    <item android:id="@+id/help"
        android:title="@string/title_activity_help"
        android:icon="@android:drawable/ic_menu_info_details"
        android:orderInCategory="101"
        myApp:showAsAction="never" />
    <item android:id="@+id/settings"
        android:title="@string/settings"
        android:icon="@android:drawable/ic_menu_info_details"
        android:orderInCategory="102"
        myApp:showAsAction="never" />
    <item android:id="@+id/search"
        android:title="@string/search"
        android:icon="@android:drawable/ic_menu_info_details"
        android:orderInCategory="103"
        myApp:showAsAction="never" />
    <item android:id="@+id/logout"
        android:title="@string/logout"
        android:icon="@android:drawable/ic_menu_info_details"
        android:orderInCategory="104"
        myApp:showAsAction="never" />
</menu>

这是我的活动类(扩展了另一个扩展AppCompatActivity的活动):

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.my_activity, menu);
    return true;
}

我使用以下appcompat库:

'com.android.support:appcompat-v7:22.2.0'

解决方法:

感谢您的回复.我做了这两个答案的建议:

How to force use of overflow menu on devices with menu button

Actionbar not shown with AppCompat

总结解决方案:

>我在活动xml中将“myApp”更改为“compat”(修复了丢失的按钮)
>我添加了这段代码

try {
    ViewConfiguration config = ViewConfiguration.get(this);
    Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
    if(menuKeyField != null) {
        menuKeyField.setAccessible(true);
        menuKeyField.setBoolean(config, false);
    }
} catch (Exception ex) {
    // Ignore
}

到我的基础活动(其他所有活动扩展)扩展了AppCompatActivity(修复了缺少的菜单)

现在它适用于5.1和4.1.2

标签:android,android-actionbar,appcompatactivity,android-4-1-jelly-bean
来源: https://codeday.me/bug/20190717/1489121.html