动作按钮仅显示在导航 Materialdrawer 库中的溢出中

action buttons only show in overflow in navigationmaterialdrawer library

我使用这个库 (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 因为我想为了解决这个问题我必须重写一些 class 或 xml 但我不知道在哪里。对吗?

更新 我使用这个库的样本(Source)进行测试。

可能是因为我的主题吧! 我阅读了这个问题(Action bar buttons showing only in overflow (not extending ActionBarActivity))并删除了主题,但是示例代码在没有 theme.it 强制关闭一行库的情况下无法工作。我将我的代码移动到另一个 activity 样本(帐户灯)与另一个主题,我有同样的问题。然后我从中删除主题但它也强制关闭:

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)

我以后想用主题!所以我不能完全删除主题。主题中的哪个元素必须更改或删除?

正如我在问题中提到的,问题出在主题上! 在 MaterialNavigationModule>res>values>themes.xml 中将样式的父级更改为

parent="Theme.AppCompat.NoActionBar

而不是

parent="Theme.AppCompat.Light.NoActionBar"