2017-06-23 11 views
3

私はSearchViewを持っており、ヒントテキストを追加しようとしています。Android SearchViewは、ユーザーが入力を開始する前にヒントテキストを表示します。

searchView.onActionViewExpanded(); 
searchView.setIconified(true); 
searchView.setQueryHint("Mitarbeiter suchen"); 

または上記のコードで周りより演奏:ユーザーが実際にSearchViewをタップしたときにのみヒントを表示することができ、私は多くのことをGoogleで検索し、私のようなStackOverflowの上で見つかった別のアプローチを試みたようです。私もIconifiedByDefaultをXMLファイルに追加しようとしましたが、それは助けになりませんでした。

私はそれのための道があると確信しています。誰でも助けてくれますか? :)

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> 
+0

it.for例えばツールヒントウィジェットのように使用....ます。https://github.com/jayrambhia/Tooltip –

答えて

0

チェックsearchViewはisFocused()メソッドによって集束されているかどうか。一致する場合、フォーカスをクリアします。

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(); 
     } 
    }); 

Here is the screenshot of my demo app and it is in fragment.

+0

ません私は、キーボードを表示したり、デフォルトでsearchViewをアクティブにしたくありません!そこにテキスト(ヒント)を表示したいだけです。 –

+0

私は私の行を編集し、テストしました。それは動作するはずです。 –

+0

あなたは本当に働いていますか?それは私にとってはうまくいかない。フラグメントを開くと、SearcViewがアクティブになり、キーボードがアップします。 –

1

検索フィールドが常に見えるようにしたい場合は、(偽) setIconifiedByDefaultを呼び出す

XML でプログラムsetIconifiedByDefault(false)

app:iconifiedByDefault="false"

+0

いいえ私はキーボードを表示したり、デフォルトでsearchViewをアクティブにしたくありません!そこにテキスト(ヒント)を表示したいだけです。 –

3

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" /> 
+0

私のために働いた、ありがとう! – Peterdk

関連する問題