2016-01-15 147 views
16

我一直在關注SearchView和對話框實現方向here。兩者都在下面可見。 SO上有許多關於定製搜索框的問題,但很少有關於定製建議UI的問題。 (那些是關於顏色/字體的,默認值對我來說很好。)我希望能夠擴大建議以佔據整個屏幕寬度。有沒有什麼方法可以使用對話框或SearchView實現自定義寬度。我不想使用庫,除非這是唯一的選擇。如果這是可行的或更容易與一個罰款的實施。android搜索:自定義建議佈局

下面是對話的實現看起來像我: enter image description here

下面介紹一下搜索查看執行看起來像我: 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),你需要這樣做:

  1. 創建一個這樣的處理程序:

私有靜態類SearchHandler擴展了Handler {

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()); 
    } 
} 

} 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) { 
     } 
    }); 
} 

在這裏建議列表是給你的

4

Here 是其主從谷歌地址搜索地點的信息庫。它具有全屏搜索列表的實現。

定製搜索查看

customized searchview

0

列表您應該創建搜索結果的活動,並寫到哪列表視圖或recyclerview填充寬度使用match_parent值的佈局XML文件中的數據。 內容必須是適配器中的搜索結果。