android - 在android中将searchview扩展到全长
问题描述
我正在使用 SearchView,我想将 searchview 扩展到工具栏的全宽。我在用:
searchView.setMaxWidth(Integer.MAX_VALUE);
为此目的,但它不起作用。这是 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/search"
android:icon="@drawable/ic_search"
app:showAsAction="always|collapseActionView"
app:actionViewClass="androidx.appcompat.widget.SearchView">
</item>
<item
android:id="@+id/setting"
android:icon="@drawable/baseline_setting"
app:showAsAction="ifRoom|collapseActionView"
android:title="Setting"/>
<item
android:icon="@drawable/ic_baseline_ert_white"
android:id="@+id/menu_overflow"
app:showAsAction="ifRoom|collapseActionView"
>
</item>
</menu>
这是工具栏及其实现。
<com.google.android.material.appbar.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/app_bar_layout"
>
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
app:menu="@menu/menu"
android:theme="@style/ThemeOverlay.AppCompat.Light"
/>
</com.google.android.material.appbar.AppBarLayout>
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.search:
SearchView searchView = (SearchView) item.getActionView();
searchView.setMaxWidth(Integer.MAX_VALUE);
//
}
});
它工作正常,但项目仍保留在工具栏上。我试图通过这样做来实现这一目标
app:showAsAction="ifRoom" for search item in menu
setting
但它停止工作,工具栏末尾仍然有一个元素。
解决方案
推荐阅读
- .net - 验证 JWT 时是否需要手动检查“alg”?
- ios - Ipad Portrait 中的 ARSCNView CGAffineTransform 错误
- powershell - Sh 别名等效于 PowerShell Set-Alias
- serialization - 使用 CDATA 内容在 eXist-db 中持久化 XML 元素
- c# - Visual Studio 中的调试日志文件位置运行 .NET 应用程序
- excel - VBA 循环仅适用于前两张纸 - 如何修复?
- neo4j - Neo4j/GraphQL - 获取链表中的最后一个节点,以便使用新创建的节点继续链表
- bootstrap-4 - Bootstrap4编译的css和js文件
- node.js - Babel 没有转译 nodejs 模块
- linux - 如何使用 ssh heredoc 删除 bash 中的多个文件?