【发布时间】:2015-08-02 07:05:45
【问题描述】:
我使用这个库 (NavigationMaterialDrawer) 来实现抽屉和管理帐户,但是当我向其中添加一些操作按钮时,即使始终考虑 showAsAction,操作按钮也只会显示在溢出菜单中
如您所见,我单击溢出菜单并看到了这一点。但我想在操作栏中看到搜索图标
这是我的代码
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.test_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
return super.onCreateOptionsMenu(menu);
}
初始化方法:
public void init(Bundle savedInstanceState) {
View view = LayoutInflater.from(this).inflate(R.layout.custom_drawer,null);
setDrawerHeaderCustom(view);
this.addSection(newSection("Section 1", new FragmentIndex()));
this.addSection(newSection("Section 2",new FragmentIndex()));
this.addSection(newSection("Section 3", R.drawable.ic_mic_white_24dp,new FragmentButton()).setSectionColor(Color.parseColor("#9c27b0")));
this.addSection(newSection("Section",R.drawable.ic_hotel_grey600_24dp,new FragmentButton()).setSectionColor(Color.parseColor("#03a9f4")));
this.addBottomSection(newSection("Bottom Section",R.drawable.ic_settings_black_24dp,new Intent(this,Settings.class)));
getSupportActionBar().setDisplayShowTitleEnabled(false);
setTitle("TestTitle");
}
这是我的 test_menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:yourapp="http://schemas.android.com/apk/res-auto"
xmlns:MaterialNavigationDrawer="http://schemas.android.com/tools">
<item android:id="@+id/action_search"
android:title="Search"
android:icon="@android:drawable/ic_search_category_default"
MaterialNavigationDrawer:showAsAction="always" />
</menu>
我将库导入到 android studio,因为我想为了解决这个问题,我必须重写一些类或 xml,但我不知道在哪里。对吗?
更新 我使用这个库的示例(Source)进行测试。
也许是因为我的主题! 我阅读了这个问题(Action bar buttons showing only in overflow (not extending ActionBarActivity))并删除了主题,但是没有主题的示例代码无法正常工作。它强制关闭了一行库。我将我的代码移动到另一个主题的示例(帐户灯)的另一个活动中,我遇到了同样的问题。然后我从中删除主题,但它也强制关闭:
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:124)
at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146)
at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:59)
at it.neokree.materialnavigationdrawer.MaterialNavigationDrawer.onCreate(MaterialNavigationDrawer.java:361)
我想在将来使用主题!所以我不能完全删除主题。主题上的哪个元素必须更改或删除?
【问题讨论】:
-
尝试
android:showAsAction="always"而不是MaterialNavigationDrawer:showAsAction="always" /> -
如果我因为 appcompat 而使用它会出错。 android studio 提供给我使用 MaterialNavigationDrawer:ignore="AppCompatResource" 我使用这个但问题还没有解决。
-
@frgnvola 提到堆栈中的工作?你收到通知了吗?! :D
-
是的,我收到了通知 :)。请改用
android:showAsAction="always",因为您正在使用支持库。 -
@frgnvola 这对我不起作用 :) 我更新了我的帖子,请参阅问题底部 :)
标签: android android-actionbar themes material-design