SearchView
은 디자인 표준이지만 bug이 있는데 여기에는 OnCloseListener
(필터링없이 검색하기 위해 코드를 넣는 곳)이 호출되지 않습니다.
onQueryTextChange
대신 onQueryTextSubmit
에서만 검색을 수행하려는 경우 문제가 발생합니다.
전자는 쿼리 문자열이 비어있을 때 호출되지 않으므로 의도적으로 텍스트 필터링을 제거 할 때만 사용자가 텍스트를 지울 때 검색하고 싶지 않습니다.
디자인은 항상 눈에 보이는 검색 창에 대한 호출로 내가 setIconifiedByDefault(true)
을 사용하고 - 당신이 SearchView를 '아이콘 화'할 때의 초 클릭에, 그러나 이것은 사실이 아니다하더라도, onClose()
만이라고합니다 'x'아이콘.
가장 좋은 해결책은 무엇입니까? SearchView 등에서 사용자 정의보기를 추가하지 않는 것이 좋습니다.조회 할 수없는 SearchView를 지울 때 검색을 수행하는 방법은 무엇입니까?
0
A
답변
0
해결 방법 : 누를 때 검색을 수행하는 SearchView를 오버레이하는 자신 만의보기를 만듭니다. 검색 문자열이 비어 있지만 마지막으로 수행 된 검색이 비어 있지 않은 문자열을 사용하는 경우에만 표시됩니다 (달리 필요하지 않음).
<RelativeLayout>
<SearchView
android:id="@+id/search" />
<ImageView
android:id="@+id/clear"
android:layout_width="@dimen/someValue"
android:layout_height="0dip"
android:layout_alignTop="@id/search"
android:layout_alignBottom="@id/search"
android:layout_alignRight="@id/search"
android:scaleType="fitCenter"
android:visibility="gone"
android:src="@drawable/someIcon" />
</RelativeLayout>
// assign to the overlaying ImageView
class OnClearClickListener implements View.OnClickListener{
@Override
public final void onClick(View v) {
View clear = findViewById(R.id.clear);
clear.setVisibility(View.GONE); // hide, just did its job
performSearch();
}
}
// assign to SearchView
class OnFilterQueryTextListener implements OnQueryTextListener {
@Override
public boolean onQueryTextChange(String newText) {
boolean hide = newText != null && newText.length() > 0 ||
!lastSearchUsedFilter(); // check value stored on successful response
findViewById(R.id.clear).setVisibility(hide ? View.GONE : View.VISIBLE);
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
findViewById(R.id.clear).setVisibility(View.GONE);
performSearch();
return false;
}
});
관련 문제
- 1. SKOS에서 개념 검색을 수행하는 방법은 무엇입니까?
- 2. elasticsearch에서 누적 배열 검색을 수행하는 방법은 무엇입니까?
- 3. 이 키워드 검색을 수행하는 방법은 무엇입니까?
- 4. Lucene.net에서 퍼지 검색을 사용하여 와일드 카드 검색을 수행하는 방법은 무엇입니까?
- 5. 플로트 Vec에서 이진 검색을 수행하는 방법은 무엇입니까?
- 6. 실시간으로 대신 오프라인 검색을 수행하는 방법은 무엇입니까?
- 7. Entity Framework 6에서 검색을 수행하는 방법은 무엇입니까?
- 8. 재귀 적 검색을 수행하는 방법은 무엇입니까?
- 9. 간격을 지울 수없는 이유는 무엇입니까?
- 10. Java에서 SURBL 검색을 수행하는 간단한 방법은 무엇입니까?
- 11. mgo에서 텍스트 검색을 수행하는 방법은 무엇입니까?
- 12. Lucene.Net에서 퍼지 검색을 올바르게 수행하는 방법은 무엇입니까?
- 13. magento에서 맞춤 검색을 수행하는 방법은 무엇입니까?
- 14. 여러 번 이진 검색을 수행하는 방법은 무엇입니까?
- 15. SearchView를 표준 방식으로 작동시키는 방법은 무엇입니까?
- 16. Tkinter가 그릴 때 이전 직사각형을 지울 수없는 이유는 무엇입니까?
- 17. GWTP의 UiBinder에서 FlexTable을 지울 수없는 이유는 무엇입니까?
- 18. Sitecore 7.x에서 패싯 검색을 수행하는 방법은 무엇입니까?
- 19. ORDER BY로 FULLTEXT 검색을 빠르게 수행하는 방법은 무엇입니까?
- 20. 선형 검색을 반환 할 때 찾을 수없는 하위 번호를 반환해야합니다
- 21. 주변 검색을 수행하는 가장 좋은 방법은 무엇입니까? (PHP & MYSQL)
- 22. SOLR에서 어구 간의 근접 검색을 수행하는 방법은 무엇입니까?
- 23. CGAL로 설정된 3D 점에서 범위 검색을 수행하는 방법은 무엇입니까?
- 24. 텍스트 필드에서 키워드 검색을 수행하는 가장 좋은 방법은 무엇입니까?
- 25. mongodb 배열 필드에서 전체 텍스트 검색을 수행하는 방법은 무엇입니까?
- 26. 속도 스크립트에서 역방향 foreach 검색을 수행하는 방법은 무엇입니까?
- 27. 다이나믹 콘텐츠로 외부 검색을 수행하는 가장 좋은 방법은 무엇입니까?
- 28. 배열에서 모델 클래스의 valueForKeyPath를 사용하여 간단한 검색을 수행하는 방법은 무엇입니까?
- 29. 암호화 된 텍스트 와일드 카드 검색을 수행하는 방법은 무엇입니까?
- 30. 열에서 MySQL 스마트 텍스트 검색을 수행하는 방법은 무엇입니까?