Android 如何在SearchView中禁用搜索对话框
我注意到,在某些设备上,当为用户显示带有SearchView的视图时,SearchView会打开一个特殊的全屏对话框,其中包含专用的Android 如何在SearchView中禁用搜索对话框,android,search,searchview,Android,Search,Searchview,我注意到,在某些设备上,当为用户显示带有SearchView的视图时,SearchView会打开一个特殊的全屏对话框,其中包含专用的Search按钮。我希望避免在不显示此对话框时使用它。我希望我的SearchView的行为类似于EditText。因为在它下面,我有一个listView,它正在改变内容,用户需要看到它。 以下是我如何在XML中设置我的SearchView: <SearchView android:layout_marginStart="50dp" androi
Search
按钮。我希望避免在不显示此对话框时使用它。我希望我的SearchView的行为类似于EditText
。因为在它下面,我有一个listView,它正在改变内容,用户需要看到它。
以下是我如何在XML中设置我的SearchView
:
<SearchView
android:layout_marginStart="50dp"
android:layout_marginEnd="50dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="5dp"
android:id="@+id/search_view_guests"
android:background="@drawable/search_view"
android:clickable="true"
android:iconifiedByDefault="false"
android:queryHint="Type in username..."
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:focusable="true" />
这就是我在代码中使用它的方式:
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
Call<List<User>> call = retrofit.listUsers(null, null, newText);
call.enqueue(new Callback<List<User>>() {
@Override
public void onResponse(Call<List<User>> call, Response<List<User>> response) {
usersList = new ArrayList<User>();
usersList.addAll(response.body());
InvAdapter adapter = new InvAdapter(
getContext(),
R.layout.list_view_invitation_item,
usersList
);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@RequiresApi(api = Build.VERSION_CODES.M)
@SuppressLint("ResourceAsColor")
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
User user = (User) parent.getItemAtPosition(position);
if(!temporaryInvited.contains(user)) {
markAsInvited(view);
}
}
});
}
@Override
public void onFailure(Call<List<User>> call, Throwable t) {
}
});
return false;
}
});
searchView.setOnQueryTextListener(新的searchView.OnQueryTextListener(){
@凌驾
公共布尔值onQueryTextSubmit(字符串查询){
返回false;
}
@凌驾
公共布尔onQueryTextChange(字符串newText){
Call Call=reformation.listUsers(null,null,newText);
call.enqueue(新回调(){
@凌驾
公共void onResponse(调用、响应){
usersList=newarraylist();
usersList.addAll(response.body());
InvAdapter适配器=新InvAdapter(
getContext(),
R.layout.list\u view\u investment\u item,
用户列表
);
setAdapter(适配器);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@RequiresApi(api=Build.VERSION\u CODES.M)
@SuppressLint(“资源色”)
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
User User=(用户)parent.getItemAtPosition(位置);
如果(!temporaryinvested.contains(用户)){
markasiinvited(视图);
}
}
});
}
@凌驾
失败时公共无效(调用调用,可丢弃的t){
}
});
返回false;
}
});
@编辑
这是我可以在某些设备上看到的默认视图(相对较小)
试试这个
android:imeOptions="actionSearch|flagNoExtractUi|flagNoFullscreen
SearchView打开一个特殊的全屏对话框
你能显示一个像gif之类的例子吗?但是你设置了自定义背景,这可能会导致问题?@Mohsen我上传了屏幕截图