我想在我的操作栏中显示搜索图标并添加图标,添加图标具有溢出按钮功能,菜单项有图标。
但我有一个问题:溢出按钮的图标无法进入添加图标,菜单项也没有图标。
这是我的styles.xml`
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:actionOverflowButtonStyle">@style/OverflowButtonStyle</item>
</style>
<style name="OverflowButtonStyle">
<item name="android:src">@mipmap/actionbar_add_icon</item>
<item name="android:paddingRight">10dp</item>
</style>
` 这是我的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_search"
android:icon="@mipmap/actionbar_search_icon"
app:actionViewClass="android.support.v7.widget.SearchView"
android:title="@string/action_search"
app:showAsAction="ifRoom|collapseActionView"
/>
<item
android:id="@+id/menu_group_chat"
android:icon="@mipmap/menu_group_chat_icon"
android:title="@string/menu_group_chat"
/>
<item
android:id="@+id/menu_add_friend"
android:icon="@mipmap/menu_add_icon"
android:title="@string/menu_add_friend"
/>
<item
android:id="@+id/menu_scan"
android:icon="@mipmap/menu_scan_icon"
android:title="@string/menu_scan"
/>
<item
android:id="@+id/menu_receive_money"
android:icon="@mipmap/menu_receive_money"
android:title="@string/menu_receive_money"
/>
<item
android:id="@+id/menu_feedback"
android:icon="@mipmap/menu_feedback_icon"
android:title="@string/menu_feedback"
/>
这是我的onMenuOpened()方法:
public boolean onMenuOpened(int featureId, Menu menu) {
if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
return super.onMenuOpened(featureId, menu);
}
我使用android studio,API 19,MainActivity扩展AppCompatActivity,
import android.support.v7.app.AppCompatActivity;
我尝试更改MainActivity extends Activity,并更改styles.xml
<style name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
但结果是搜索按钮无法显示在操作栏中但显示在溢出按钮中,幸运的是,菜单项的图标已显示,因此我更改了搜索按钮app:showAsAction =&#34; always | collapseActionView&#34;,但它没有工作
答案 0 :(得分:0)
使用onMenuOpened()方法的follow函数instand:
@Override
protected boolean onPrepareOptionsPanel(View view, Menu menu) {
if (menu != null) {
if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
try {
Method m = menu.getClass().getDeclaredMethod(
"setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
Log.e(getClass().getSimpleName(), "onMenuOpened...unable to set icons for overflow menu", e);
}
}
}
return super.onPrepareOptionsPanel(view, menu);
}