SearchViewがあり、ヒントテキストを追加しようとしています。ユーザーが実際にSearchViewをタップしたときにのみヒントを表示できるようです。私はたくさんグーグルで検索し、StackOverflowで見つけたさまざまなアプローチを試しました。
searchView.onActionViewExpanded();
searchView.setIconified(true);
searchView.setQueryHint("Mitarbeiter suchen");
または、上記のコードをいじってみてください。 XMLファイルにIconifiedByDefault
を追加しようとしましたが、役に立ちませんでした。
私はそれのための方法があると確信しています。誰か助けてもらえますか? :)
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>
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();
}
});
iconifiedByDefault
およびfocusable
プロパティを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" />
検索フィールドを常に表示したい場合は、setIconifiedByDefault(false)を呼び出します。
プログラムでsetIconifiedByDefault(false)
XMLでapp:iconifiedByDefault="false"