私は現在、Android最小APIレベル8のStudioを使用してシンプルなアプリを開発しています。現在、Android.support.v7.widget.SearchView
in LinearLayout
in content_main.xml
レイアウト、ACTIONBAR
ではなく、今問題は、デフォルトでsearchViewをExpanded
に設定できないことです。すでに解決策を探しており、これしか得られません。
Android:iconifiedByDefault="false"
これは私のsearchViewの完全なコードです
<Android.support.v7.widget.SearchView
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:id="@+id/searchView"
Android:background="#00000000"
Android:iconifiedByDefault="false"
Android:layout_weight="1" />
しかし運が悪い、それは機能していません。誰でも手伝ってくれる?任意の助けいただければ幸いです。どうもありがとうございます!
はい、問題を解決しました。 SearchViewのサポートライブラリを使用したい方は、ここでカスタマイズできます。
<Android.support.v7.widget.SearchView
Android:id="@+id/searchView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:closeIcon="@drawable/ic_clear" // To set custom clear icon
app:searchIcon="@drawable/ic_search" //To set custom search icon
app:queryBackground="@color/transparent" // i decided to remove underline so i create a custom background for my searchView
app:queryHint="@string/filterHint" //to set a custom Hint
app:iconifiedByDefault="false" //And finally, to Expand it as default
/>
私が言ったように、私はJavaコードを介してランタイムでxmlレイアウトをオーバーライドすることを恐れているので、それを整理してランタイム中にこれ以上オーバーライドしないようにするために、これは私がそれを行う方法です。
手伝ってくれてありがとう!!!
以下のコードを使用して、searchviewを展開し、同時にカーソルを配置しました。
final SearchView sv = new SearchView(((MainActivity) getActivity()).getSupportActionBar().getThemedContext());
sv.setIconifiedByDefault(true);
sv.setFocusable(true);
sv.setIconified(false);
sv.clearFocus();
sv.requestFocusFromTouch();
SearchViewをデフォルトで展開するには、初期化時に(たとえばonCreate(..)で)setIconifiedByDefault(false)を呼び出します。ほとんどの場合、これにより自動的にフォーカスが与えられますが、単純にrequestFocus()を呼び出さない場合はその上にも。