2016-01-15 22 views
16

Tôi đã theo dõi các chỉ dẫn here cho cả triển khai SearchView và hộp thoại. Cả hai đều có thể nhìn thấy bên dưới. Có rất nhiều câu hỏi về SO tập trung vào tùy chỉnh hộp tìm kiếm, nhưng ít câu hỏi về việc tùy chỉnh giao diện người dùng của các đề xuất. (Những người làm về màu sắc/font chữ, mặc định là tốt cho tôi.) Tôi muốn có thể mở rộng các đề xuất để chiếm toàn bộ chiều rộng của màn hình. Có cách nào để tùy chỉnh chiều rộng bằng cách sử dụng hộp thoại hoặc triển khai SearchView hay không. Tôi không muốn sử dụng thư viện trừ khi đó là tùy chọn duy nhất. Nếu điều này là có thể hoặc dễ dàng hơn với một trong những triển khai đó là tốt.tìm kiếm android: tùy chỉnh bố cục đề xuất

Đây là những gì thực hiện thoại trông giống như đối với tôi: enter image description here

Đây là những gì thực hiện SearchView trông giống như đối với tôi: enter image description here

+1

http://stackoverflow.com/questions/27671954/android-prevent-text-truncation-in-searchview-suggestions .. điều này có thể giúp – user2511882

+0

@ lf215 u có thể tạo một istview tùy chỉnh .... –

Trả lời

3

Đây là cách bạn có thể làm điều đó: this is what I created Bước 1:

Chỉ cần tạo một bố trí với quan điểm tái chế hoặc danh sách có thể mở rộng hoặc danh sách nào bạn muốn để sử dụng.

Bước 2: Trong hoạt động bạn (CityActivity), bạn cần phải làm điều này:

  1. Tạo một handler như thế này:

tin lớp tĩnh SearchHandler kéo dài 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. đặt textchangelistener trên tìm kiếm của bạn

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

Dưới đây gợi ý danh sách là các dữ liệu mà được đưa vào danh sách các

4

Here là kho lưu trữ mà chọn nơi từ tìm kiếm địa chỉ google . Nó đã thực hiện danh sách tìm kiếm toàn màn hình.

Customized SearchView

customized searchview

0

Bạn nên tạo một hoạt động cho kết quả tìm kiếm và viết một tập tin xml bố trí nơi listview hoặc recyclerview điền chiều rộng sử dụng giá trị match_parent. Nội dung phải là kết quả tìm kiếm trong bộ điều hợp.

Các vấn đề liên quan