Có cách nào để làm cho danh sách kết quả của SearchView chiếm toàn bộ chiều rộng màn hình không? Tôi đã thử sử dụng bố cục tùy chỉnh cho SearchView, nhưng điều này không thay đổi chiều rộng của danh sách kết quả tìm kiếm. Xem ảnh chụp màn hình:SearchView chiều rộng danh sách kết quả
Trả lời
Vâng, đó là có thể. Để đạt được điều này, chúng ta nên đặt chiều rộng của toàn bộ DropDownView
, không chỉ cho các mục. Chúng tôi có thể đặt nó bằng cách gọi setDropDownWidth
của AutoCompleteTextView
. Nhưng có một vấn đề. DropDownView
Chiều rộng và chiều ngang được tính toán bên trong SearchView
mỗi lần giới hạn của nó được thay đổi. Để có giải pháp khác, chúng tôi có thể thêm vào số SearchView
riêng của chúng tôi OnLayoutChangeListener
nơi chúng tôi tính toán và đặt chiều cao là DropDownView
. Các mã sau đây được hoàn toàn làm việc với AppCompat
:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// inflate our menu
getMenuInflater().inflate(R.menu.search_menu, menu);
// find MenuItem and get SearchView from it
MenuItem searchMenuItem = menu.findItem(R.id.search);
SearchView searchView = (SearchView) searchMenuItem.getActionView();
// id of AutoCompleteTextView
int searchEditTextId = R.id.search_src_text; // for AppCompat
// get AutoCompleteTextView from SearchView
final AutoCompleteTextView searchEditText = (AutoCompleteTextView) searchView.findViewById(searchEditTextId);
final View dropDownAnchor = searchView.findViewById(searchEditText.getDropDownAnchor());
if (dropDownAnchor != null) {
dropDownAnchor.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int left, int top, int right, int bottom,
int oldLeft, int oldTop, int oldRight, int oldBottom) {
// calculate width of DropdownView
int point[] = new int[2];
dropDownAnchor.getLocationOnScreen(point);
// x coordinate of DropDownView
int dropDownPadding = point[0] + searchEditText.getDropDownHorizontalOffset();
Rect screenSize = new Rect();
getWindowManager().getDefaultDisplay().getRectSize(screenSize);
// screen width
int screenWidth = screenSize.width();
// set DropDownView width
searchEditText.setDropDownWidth(screenWidth - dropDownPadding * 2);
}
});
}
return super.onCreateOptionsMenu(menu);
}
Nếu bạn sử dụng Holo chỉ cần thay đổi dòng int searchEditTextId = R.id.search_src_text;
đến dưới một:
int searchEditTextId = getResources().getIdentifier("android:id/search_src_text", null, null);
Bạn phải có được tham chiếu đến đối tượng SearchAutoComplete mà trong trường hợp của tôi android.support.v7.widget.SearchView sử dụng, sau đó đặt kích thước của nó, vui lòng kiểm tra câu trả lời của tôi tại đây:
- 1. SearchView không mở rộng đầy đủ chiều rộng
- 2. KendoUI Đặt chiều rộng của danh sách thả xuống
- 3. Mã kết quả mở rộng PHP Memcached
- 4. Tạo liên kết có chiều rộng 100%
- 5. Chiều rộng/chiều cao mục danh sách CSS không hoạt động
- 6. Chọn kết quả từ giữa danh sách được sắp xếp?
- 7. định dạng mathematica xuất danh sách kết quả
- 8. Sắp xếp kết quả API Youtube từ danh sách phát
- 9. Cây: Danh sách được Liên kết và Mảng (Hiệu quả)
- 10. LINQ: hiển thị kết quả từ danh sách rỗng
- 11. Gọi hàm nhiều lần và nhận danh sách kết quả
- 12. Erlang: kết hợp mẫu nào hiệu quả hơn (danh sách)?
- 13. groupby kết quả cho từ điển của danh sách
- 14. danh sách kết quả của bản đồ là dài hơn
- 15. MySQL Kết quả như dấu phẩy tách ra danh sách
- 16. danh sách erlang: dropwhile kết quả kỳ lạ
- 17. Mở rộng danh sách các danh sách bằng Python?
- 18. Python tìm chiều dài danh sách trong danh sách con
- 19. python .count cho mảng đa chiều (danh sách danh sách)
- 20. Android Danh sách mở rộng
- 21. Danh sách liên kết danh sách liên kết trong Java
- 22. Đặt chiều rộng của các mục danh sách để điền vào danh sách không có thứ tự
- 23. Python: khởi tạo danh sách đa chiều
- 24. Python: Kết hợp trong danh sách các danh sách (?)
- 25. Có cách nào để sửa chiều rộng của danh sách thả xuống không?
- 26. Bootstrap liên kết navbar chiều rộng mở rộng bất ngờ
- 27. Danh sách liên kết bốn là gì?
- 28. Danh sách hai chiều trong Java
- 29. Danh sách 3 chiều hoặc Bản đồ
- 30. Danh sách Ánh xạ hai chiều
Tôi nghĩ chiều rộng kết quả tìm kiếm phụ thuộc vào chiều rộng văn bản chỉnh sửa tìm kiếm – Praveen
@Praveen trong CursorAdapter của tôi Tôi xem chế độ xem có chiều rộng MATCH_PARENt. –
đăng mã của bạn và bố cục bộ điều hợp tùy chỉnh –