29

検索ビュー コンポーネント内に表示される Mag アイコンを無効にしたい。それを参照して削除するか、別のドローアブルに置き換える方法はありますか?

ここに画像の説明を入力

4

10 に答える 10

7

このアイコンがヒントです。したがって、新しいヒント テキストを簡単に設定できます。

int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
    EditText searchPlate = (EditText) searchView.findViewById(searchPlateId);

    searchPlate.setHint("Search");

アイコンをヒント テキストとして使用する場合は、ImageSpan でスパン可能な文字列を使用します

int searchPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
    EditText searchPlate = (EditText) searchView.findViewById(searchPlateId);


    searchPlate.setTextColor(getResources().getColor(R.color.search_text_color));
    SpannableString string = new SpannableString(" ");
    Drawable d = getResources().getDrawable(R.drawable.ic_search);
    d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
    ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BOTTOM);
    string.setSpan(span, 0, 1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
    searchPlate.setHint(string);
于 2015-01-26T10:45:10.660 に答える
5

あなたのテーマで:

<style name="Theme" parent="Your parent theme">
<item name="android:searchViewSearchIcon">@android:drawable/ic_search</item>
</style>

編集:
searchViewSearchIconプライベート属性です。したがって、この回答は機能しません (ネイティブ ActionBar では)。

于 2012-12-22T20:22:33.520 に答える
3

この行を MenuItem に追加する必要がありますandroid:iconifiedByDefault="@android:color/transparent"

<item
    android:id="@+id/activity_home_action_search"
    android:icon="@drawable/ic_action_search"
    android:title="@string/activity_home_search_title"
    android:iconifiedByDefault="@android:color/transparent"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="always|collapseActionView" />

または、プログラムで作成できますsearchView.setIconifiedByDefault(true);

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    super.onCreateOptionsMenu(menu, inflater);
    getMenuInflater().inflate(R.menu.home, menu);

    MenuItem searchMenuItem = menu.findItem(R.id.activity_home_action_search);

    SearchView searchView = (SearchView) searchMenuItem.getActionView();
    searchView.setIconifiedByDefault(true);
}
于 2016-05-18T15:28:21.730 に答える
2

ヒント検索ボタンを削除するには:

mNearMeSearchBar = (SearchView) mView.findViewById(R.id.nearme_search_component_nearme_edittext);
mNearMeSearchBar.setIconifiedByDefault(false); //Removes Search Hint Icon

検索ボタンのドローアブルを変更するには:

int searchImgId = getResources().getIdentifier("android:id/search_mag_icon", null, null);
ImageView v = (ImageView) mNearMeSearchBar.findViewById(searchImgId);
v.setImageResource(R.drawable.ic_compass);
于 2015-10-12T14:19:58.267 に答える
0

searchView コンポーネントの xml に next を追加します。

app:searchHintIcon="@null"
于 2017-10-11T18:12:53.620 に答える