14

SearchView の青いフォーカス ラインを削除しようとしています。searchView にカスタマイズされたアイコンを使用できるように、それを AutoCompleteTextView にキャストしています。

    int id = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
    searchtextView = (AutoCompleteTextView) searchView.findViewById(id); 

使ってみました

searchtextView.setBackGroundColor(0) 

xml で背景を手動で #0000000 に設定していますが、下部に青い線が表示されます。

私が直面している2番目の問題は、最初はカーソルがテキストに表示されないことです。検索ビューに何も入力されていないときにカーソルを表示したい.Iを使用してプログラムで実行しようとしました

if (searchtextView.getText().toString().length() >= 0) {
   searchtextView.setSelection(searchtextView.getText().toString().length());
 }

searchView 内にテキストが存在しない場合でもカーソルを表示する必要があります。2〜3文字を入力するとカーソルが自動的に表示されるため、フォーカスと関係があると思います。

4

3 に答える 3

1

使用できます

android:queryBackground="@android:color/transparent"
于 2016-07-29T16:24:17.590 に答える
0

メニュー作成機能で検索編集テキストのフォーカスをクリアすることで動作させることができました。以下のコード:

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        super.onCreateOptionsMenu(menu);

        ...

        final MenuItem searchItem = menu.findItem(R.id.action_search);

        if (searchItem != null) {
            // Associate searchable configuration with the SearchView
            SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
            final SearchView view = (SearchView) searchItem.getActionView();
            if(view !=null){
                LinearLayout searchPlate = (LinearLayout)mSearchView.findViewById(R.id.search_plate);
                if(searchPlate != null){
                    mSearchEditText = (EditText)searchPlate.findViewById(R.id.search_src_text);
                    if(mSearchEditText != null){
                        mSearchEditText.clearFocus();     // This fixes the keyboard from popping up each time
                    }
                }
            }
        }
}
于 2014-12-29T02:26:27.453 に答える