为啥工具栏不接受菜单的 showAsAction = "always" 属性
Posted
技术标签:
【中文标题】为啥工具栏不接受菜单的 showAsAction = "always" 属性【英文标题】:Why is the toolbar not accepting the showAsAction = "always" attribute of the menu为什么工具栏不接受菜单的 showAsAction = "always" 属性 【发布时间】:2020-09-10 02:33:52 【问题描述】: toolbar = (Toolbar) view.findViewById(R.id.toolbar);
Main2Activity activity = (Main2Activity) getActivity();
activity.setSupportActionBar(toolbar);
activity.getSupportActionBar();
final SearchView searchView = (SearchView) view.findViewById(R.id.action_search);
toolbar.inflateMenu(R.menu.seacrh_monan);
toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener()
@Override
public boolean onMenuItemClick(MenuItem item)
switch (item.getItemId())
case R.id.action_search:
Toast.makeText(getActivity(),"Bạn đã nhấn nút tìm kiếm",Toast.LENGTH_SHORT).show();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener()
@Override
public boolean onQueryTextSubmit(String query)
return false;
@Override
public boolean onQueryTextChange(String newText)
adapter.getFilter().filter(newText);
return false;
);
return true;
return false;
);
return view;
这是我在 Fragment 中的代码工具栏
我给了我的菜单
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_logout"
android:title="logout">
</item>
<item
android:id="@+id/action_search"
android:title="Search"
android:icon="@drawable/ic_search_white"
app:showAsAction="always|collapseActionView|ifRoom"
app:actionViewClass="androidx.appcompat.widget.SearchView"
/>
这是我的 seacrh_monan.xml
但是当我运行应用程序时,工具栏并不总是从菜单中获取 showAsAction。任何帮助表示赞赏。
【问题讨论】:
工具栏菜单中有多少项。你试过用app:showAsAction = "ifRoom"
我的菜单中有 2 项。我尝试使用该应用程序:showAsAction = "ifRoom" 但失败了。
使用 seacrh_monan.xml 文件代码更新您的问题
工具栏中的菜单资源膨胀后,你看到这两个菜单项了吗?
发布完整的片段代码
【参考方案1】:
从属性app:showAsAction
中删除ifRoom
。或者,如果项目不多,您也可以删除always
。请注意,始终显示为操作的菜单项的数量是有限制的。
【讨论】:
以上是关于为啥工具栏不接受菜单的 showAsAction = "always" 属性的主要内容,如果未能解决你的问题,请参考以下文章
outlook express 为啥每次都需要点接受全部邮箱才能接到邮件 如果不点击就收不到邮件怎么回事?