我正在尝试向我的Android应用添加溢出菜单(三个点)。 它在预览(Android Studio)上看起来很完美,但无法显示在我的三星Galaxy Tab 2平板电脑上。为什么呢?
这是我到目前为止所做的:
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.boci.helloworldandroidgithub" >
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.ActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="ThemeOverlay.AppCompat.ActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.ActionBar">
<item name="windowActionBar">true</item>
<item name="windowNoTitle">false</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="Base.ThemeOverlay.AppCompat.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.ActionBar" />
</resources>
styles.xml(V21)
<resources>>
<style name="AppTheme.ActionBar">
<item name="windowActionBar">true</item>
<item name="windowNoTitle">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@android:color/holo_blue_light</item>
</style>
</resources>
MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
menu_main.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:checkableBehavior="single" android:enabled="true" >
<item android:id="@+id/main_red"
android:orderInCategory="1"
app:showAsAction="never"
android:title="@string/menu_red">
</item>
<item android:id="@+id/main_green"
android:orderInCategory="2"
app:showAsAction="never"
android:title="@string/menu_green">
</item>
<item android:id="@+id/main_blue"
android:orderInCategory="3"
app:showAsAction="never"
android:title="@string/menu_blue">
</item>
</group>
</menu>
如果我想看到这三个点和选项,我还应该配置什么?
答案 0 :(得分:0)
由于ActionBarPolicy中的代码
,因此未显示溢出按钮public boolean showsOverflowMenuButton() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
return true;
} else {
return !ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(mContext));
}
}
正如您可以看到设备是否低于KitKat,如果设备有硬件密钥,则不会显示溢出按钮。
您可以覆盖此设置,在onCreate
的{{1}}方法中添加此代码:
Activity