gpt4 book ai didi

android - OptionsMenu 中的 SearchView 不是全宽

转载 作者:IT老高 更新时间:2023-10-28 21:38:40 24 4
gpt4 key购买 nike

我有一个可用的 SearchView,当用户点击搜索图标时,它会在我的 OptionsMenu 中展开。但是,它仅在其他 OptionsMenu 图标之间的可用空间内扩展。在宽屏幕上这很好,但在狭窄的空间中,搜索框中只能显示 5-10 个字符。我希望它覆盖其他图标,例如 Android 联系人应用程序。目前,我正在使用 targetSdkVersion = 17 进行构建。希望我遗漏了一些简单的东西:)

(稍后添加的注释:到目前为止,我发现唯一可行的解​​决方案是在我想展开搜索图标时隐藏所有菜单图标。这在概念上很简单。但它很困惑,因为当恢复隐藏时图标,必须通过一堆逻辑来确定要恢复哪些图标,或者保留状态变量等)

这是我在 OptionsMenu 中的项目 xml:

<item
android:id="@+id/menu_search_shallow"
android:title="Search Current Folder"
android:icon="@drawable/ic_btn_search"
android:showAsAction="always|collapseActionView"
android:actionViewClass="android.widget.SearchView" />

我的主要 Activity 代码中也有:

@Override
public boolean onCreateOptionsMenu (Menu menu)
{
getMenuInflater().inflate(R.menu.nav_menu, menu);
this.optionsMenu = menu;

MenuItem searchItem = menu.findItem (R.id.menu_search_shallow);
searchItem.setOnActionExpandListener (this);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_shallow_hint));

searchItem = menu.findItem (R.id.menu_search_deep);
searchItem.setOnActionExpandListener (this);
searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint (getString (R.string.search_deep_hint));
}

@Override
public boolean onMenuItemActionExpand(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setOnQueryTextListener (this);
return true;
}

@Override
public boolean onMenuItemActionCollapse(MenuItem item)
{
SearchView searchView = (SearchView) item.getActionView();
searchView.setQuery ("", false);
return true;
}

最佳答案

我没有创建新布局,而是在 onCreateOptionsMenu() 中以编程方式设置 MaxWidth:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_search, menu);
SearchView searchView = (SearchView)menu.findItem(R.id.menu_search).getActionView();
searchView.setMaxWidth(Integer.MAX_VALUE);
....

关于android - OptionsMenu 中的 SearchView 不是全宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18063103/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com