Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何在SearchView中禁用搜索对话框_Android_Search_Searchview - Fatal编程技术网

Android 如何在SearchView中禁用搜索对话框

Android 如何在SearchView中禁用搜索对话框,android,search,searchview,Android,Search,Searchview,我注意到,在某些设备上,当为用户显示带有SearchView的视图时,SearchView会打开一个特殊的全屏对话框,其中包含专用的Search按钮。我希望避免在不显示此对话框时使用它。我希望我的SearchView的行为类似于EditText。因为在它下面,我有一个listView,它正在改变内容,用户需要看到它。 以下是我如何在XML中设置我的SearchView: <SearchView android:layout_marginStart="50dp" androi

我注意到,在某些设备上,当为用户显示带有SearchView的视图时,SearchView会打开一个特殊的全屏对话框,其中包含专用的
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我上传了屏幕截图