溢出菜单的 3 个点未显示在 ActionBar 中
Overflow menu's 3 dots are not showing up in ActionBar
我是 android 的新手,我正在尝试创建一个溢出菜单。
ActionBar
上的 3 个点没有显示(即使在更改应用主题之后)。更改应用主题后,它会显示在屏幕中央"Android..CoordinatorLayout"如何获得这 3 个点?
我的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">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="always" />
<item android:id="@+id/rtfm"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
你应该需要这样的东西。
menu.xml
目录下项目的 menu.xml
布局。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never" />
...
</menu>
那么在你的 Activity
中你必须包含这个方法。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
// Do something
return true;
default:
return super.onOptionsItemSelected(item);
}
}
您可以在 Activity 的 onCreate 中使用这个技巧:
if (savedInstanceState == null) {
//Show dots:
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
}
} else {
//isResumed = true; ............. do something.....
}
我是 android 的新手,我正在尝试创建一个溢出菜单。
ActionBar
上的 3 个点没有显示(即使在更改应用主题之后)。更改应用主题后,它会显示在屏幕中央"Android..CoordinatorLayout"如何获得这 3 个点?
我的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">
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="always" />
<item android:id="@+id/rtfm"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
</menu>
你应该需要这样的东西。
menu.xml
目录下项目的 menu.xml
布局。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never" />
...
</menu>
那么在你的 Activity
中你必须包含这个方法。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_settings:
// Do something
return true;
default:
return super.onOptionsItemSelected(item);
}
}
您可以在 Activity 的 onCreate 中使用这个技巧:
if (savedInstanceState == null) {
//Show dots:
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
}
} else {
//isResumed = true; ............. do something.....
}