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