Android SearchView在用户开始输入之前显示提示文本

Abe*_*eri 7 android searchview

我有一个SearchView并尝试添加提示文本.看起来你只能在用户实际点击SearchView时显示提示,我google了很多,并尝试了我在StackOverflow上找到的不同方法,例如:

searchView.onActionViewExpanded();
searchView.setIconified(true);
searchView.setQueryHint("Mitarbeiter suchen");
Run Code Online (Sandbox Code Playgroud)

或使用上面的代码玩更多.我也试过添加IconifiedByDefaultXML文件,但没有帮助.

我相信它有办法.有人可以帮忙吗?:)

fragment_main.xml

<android.support.v7.widget.SearchView
    android:id="@+id/search_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:queryHint="Mitarbeiter suchen">

</android.support.v7.widget.SearchView>
Run Code Online (Sandbox Code Playgroud)

Gnz*_*zlt 10

设置iconifiedByDefaultfocusable属性false为我工作.

<android.support.v7.widget.SearchView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:focusable="false"
    app:iconifiedByDefault="false"
    app:queryHint="test" />
Run Code Online (Sandbox Code Playgroud)


Sha*_*tab 4

通过 isFocused() 方法检查 searchView 是否获得焦点。如果匹配,那么它将清除焦点。

searchView = (SearchView) findViewById(R.id.searchView);
searchEditText = (EditText) findViewById(R.id.search_src_text); //SearchView editText
closeButton = (ImageView) findViewById(R.id.search_close_btn); //X button of SearchView

searchView.onActionViewExpanded(); //new Added line
searchView.setIconifiedByDefault(false);
searchView.setQueryHint("Search Here");

if(!searchView.isFocused()) {
    searchView.clearFocus();
}

//Query
searchView.setOnQueryTextListener(new 
           SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {

            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {

            return false;
        }
    });

//This is the your x button
closeButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //Clear the text from EditText view
            searchEditText.setText("");

            //Clear query
            searchView.setQuery("", false);
            searchView.clearFocus();
        }
    });
Run Code Online (Sandbox Code Playgroud)

这是我的演示应用程序的屏幕截图,它是片段。