2016-01-15 16 views
16

SearchViewとダイアログの両方の実装では、hereの指示に従っています。どちらも下に表示されています。検索ボックスのカスタマイズに焦点を当てているので、多くの質問がありますが、提案のUIをカスタマイズすることはほとんどありません。 (色/フォントに関するものですが、デフォルトは私にはうまくいきます。)スクリーンの幅全体を使うように提案を広げたいと思っています。ダイアログまたはSearchViewの実装を使用して幅をカスタマイズする方法はありますか。私はそれが唯一の選択肢でない限り、ライブラリを使用したくないと思う。これが可能であるか、または実装がうまくいっていれば簡単です。ここでアンドロイド検索:カスタマイズの提案のレイアウト

は、ダイアログの実装が私のために次のようになります。 enter image description here

ここでSearchViewの実装が私のために次のようになります。 enter image description here

+1

http://stackoverflow.com/questions/27671954/android-prevent-text-truncation-in-searchview-suggestions ..これが役に立ちます – user2511882

+0

@ lf215あなたはカスタムistviewを作ることができます.... –

答えて

3

これは、あなたがそれを行うことができる方法である。 this is what I created ステップ1:

ちょうどあなたがしたい方リサイクラービューまたは拡張可能なリストとレイアウトまたはリストを作成使用する。

ステップ2:あなたのアクティビティ(CityActivity)では、あなたはこれを実行する必要があります。

プライベート静的クラスSearchHandlerは{

private WeakReference<CityActivity> mTarget; 

SearchHandler(CityActivity target) { 
    mTarget = new WeakReference<>(target); 
} 

public void setTarget(CityActivity target) { 
    mTarget.clear(); 
    mTarget = new WeakReference<>(target); 

} 

@Override 
public void handleMessage(final Message msg) { 
    if (msg.what == CityActivity.TRIGGER_SEARCH) { 
     CityActivity activity = mTarget.get(); 
     activity.makeRequest(mSearchText.trim()); 
    } 
} 
ハンドラを拡張:

  1. は、このようなハンドラを作成します。

    } 2.あなたの検索したテキストにtextchangelistenerを入れます

    ここ
    public void setTextChangeListener() { 
        searchView.addTextChangedListener(new TextWatcher() { 
         @Override 
         public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
         } 
    
         @Override 
         public void onTextChanged(CharSequence s, int start, int before, int count) { 
          mSearchText = searchView.getText().toString(); 
          if (!mSearchText.trim().isEmpty()) { 
           handler.removeMessages(CitySelectionActivity.TRIGGER_SEARCH); 
           handler.sendEmptyMessageDelayed(CityActivity.TRIGGER_SEARCH, 
             CityActivity.SEARCH_TRIGGER_DELAY_IN_MS); 
          } else { 
           suggestList.clear(); 
           fillAnything(); 
          } 
         } 
    
         @Override 
         public void afterTextChanged(Editable s) { 
         } 
        }); 
    } 
    

    リストは、あなたが検索結果のアクティビティを作成し、match_parent値を使用して、リストビューまたはrecyclerviewフィル幅レイアウトxmlファイルを書き込む必要があり

4

Here は、Googleのアドレス検索から場所を選びリポジトリです。それは全画面検索リストの実装を持っています。

カスタマイズSearchview

customized searchview

0

のリストに指定されたデータであることを示唆しています。 コンテンツはアダプターの検索結果でなければなりません。

関連する問題