2012-12-18 79 views
3

幾次搜索後,我無法弄清楚如何自定義搜索對話框(單擊搜索按鈕時出現的頂部搜索欄)。我想更改搜索欄的背景顏色。我得到了關於如何自定義標題欄的文章。但是這對搜索欄不起作用。安卓搜索對話框定製

任何有用的指針,請...

回答

1

我發現Android Search Dialog庫,該庫是一個真棒和自定義的搜索對話框內置的搜索選項。

見演示圖片:

Tell Me How - A Place of Technology Geekier 我們用簡單的佈局簡單的搜索對話框,但你可以使用任何東西,在其他的字,你可以做它自己的方式。當然,你的佈局應該有這兩種觀點:

    如果你只是想用簡單的搜索
  • 一個EditText作爲搜索關鍵字輸入使用
  • 一個RecyclerView用於顯示它

結果對話框首先你需要提供可搜索的項目。要實現這一點,您應該在您的模型中執行可搜索

public class SampleSearchModel implements Searchable { 
    private String mTitle; 
    public SampleSearchModel(String title) { 
     mTitle = title; 
    } 
    @Override 
    public String getTitle() { 
     return mTitle; 
    } 
    public SampleSearchModel setTitle(String title) { 
     mTitle = title; 
     return this; 
    } 
} 

現在生成您的活動的一些搜索選項:

private ArrayList<SampleSearchModel> createSampleData(){ 
     ArrayList<SampleSearchModel> items = new ArrayList<>(); 
     items.add(new SampleSearchModel("First item")); 
     items.add(new SampleSearchModel("Second item")); 
     items.add(new SampleSearchModel("Third item")); 
     items.add(new SampleSearchModel("The ultimate item")); 
     items.add(new SampleSearchModel("Last item")); 
     items.add(new SampleSearchModel("Lorem ipsum")); 
     items.add(new SampleSearchModel("Dolor sit")); 
     items.add(new SampleSearchModel("Some random word")); 
     items.add(new SampleSearchModel("guess who's back")); 
     return items; 
    } 

然後你只需要添加要顯示對話框下面幾行:

new SimpleSearchDialogCompat(MainActivity.this, "Search...", 
         "What are you looking for...?", null, createSampleData(), 
         new SearchResultListener<SampleSearchModel>() { 
          @Override 
          public void onSelected(BaseSearchDialogCompat dialog, 
                SampleSearchModel item, int position) { 
           Toast.makeText(MainActivity.this, item.getTitle(), 
             Toast.LENGTH_SHORT).show(); 
           dialog.dismiss(); 
          } 
         }).show(); 

希望它有幫助!