lf2*_*215 17 search android android-layout search-suggestion
我一直在与方向沿以下这里两个搜索查看和对话实现.两者都在下面可见.关于自定义搜索框的SO有很多问题,但很少有关于自定义建议UI的问题.(那些是关于颜色/字体,默认情况下对我来说很好.)我希望能够扩大建议占据屏幕的整个宽度.有没有办法使用对话框或SearchView实现自定义宽度.我不想使用库,除非这是唯一的选择.如果这是可能的或更容易,其中一个实现是好的.
小智 3
只需创建一个布局,其中包含一个RecyclerView或一个可扩展列表或您想要使用的列表。
在您的活动 ( CityActivity) 中,您需要执行以下操作:
private static class SearchHandler extends 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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
TextChangeListener你的searchEditText: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) {
}
});
}
Run Code Online (Sandbox Code Playgroud)
这suggestList是提供给您的列表的数据
| 归档时间: |
|
| 查看次数: |
3789 次 |
| 最近记录: |