gpt4 book ai didi

Android searchView下拉菜单屏幕宽度

转载 作者:行者123 更新时间:2023-11-30 01:33:35 25 4
gpt4 key购买 nike

情况:

我的 appcompat 工具栏中有一个 searchview 小部件,它允许通过 sqlite 数据库提供自定义建议。

问题:

我无法将下拉建议列表扩展到屏幕的整个宽度。充其量,列表宽度几乎是屏幕的宽度,除了左侧和右侧的小边距/填充问题。如何使下拉列表与屏幕宽度相同?

我尝试过的事情:

SearchView results list width

AutoCompleteText的setPadding,setRight/setLeft,setDropDownHorizo​​ntalOffset,设置layout params,设置width为match_parent。

菜单/搜索.xml

<item
android:id="@+id/search_restaurant"
android:title="Search"
android:icon="@drawable/search"
android:orderInCategory="2"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always"/>

res/search_view_suggestions_list_item

<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="48dp"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:background="@android:color/white"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:minHeight="?android:attr/listPreferredItemHeightSmall"/>

Activity/Activity.java

    MenuItem searchItem = menu.findItem(R.id.search_restaurant);
searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setQueryHint("Search Restaurant");
searchView.setOnQueryTextListener(this);
searchView.setOnSuggestionListener(this);
final AutoCompleteTextView searchAutoCompleteTextView = (AutoCompleteTextView) searchView
.findViewById(R.id.search_src_text);
searchAutoCompleteTextView.setThreshold(1);
searchAutoCompleteTextView.setDropDownWidth(ViewGroup.LayoutParams.MATCH_PARENT);

// Tried to change margins/padding here
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)
searchAutoCompleteTextView.getLayoutParams();
params.setMargins(0, 0, 0, 0);
searchAutoCompleteTextView.setLayoutParams(params);
searchAutoCompleteTextView.setPadding(0, 0, 0, 0);

searchAutoCompleteTextView.setDropDownHorizontalOffset(-100);
searchAutoCompleteTextView.setPadding(0,0,0,0);
searchAutoCompleteTextView.setLeft(0);

final View dropDownSuggestions = searchView.findViewById(searchAutoCompleteTextView
.getDropDownAnchor());
if (dropDownSuggestions != null) {
dropDownSuggestions.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) {
int point[] = new int[2];

dropDownSuggestions.getLocationOnScreen(point);
int dropDownPadding = point[0] + searchAutoCompleteTextView
.getDropDownHorizontalOffset();

Rect screenSize = new Rect();
getWindowManager().getDefaultDisplay().getRectSize(screenSize);
int screenWidth = screenSize.width();
searchAutoCompleteTextView.setDropDownWidth(screenWidth * 2);
}
});
}

最佳答案

你想要的宽度大小,可以通过使用 Wrap content 来实现。试试这个代码:searchAutoCompleteTextView.setDropDownWidth(ViewGroup.LayoutParams.WRAP_CONTENT);

当我浏览这个链接时,我得到了这个答案:

https://www.youtube.com/watch?v=408pMAQFnvs

关于Android searchView下拉菜单屏幕宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35402030/

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