android搜索:自定义建议布局
我一直在遵循SearchView和dialog实现的指导。两者都在下面可见。有很多问题是关于如何定制搜索框的,但是很少有关于定制建议的UI的。(这些是关于颜色/字体的,默认值对我来说很好。)我希望能够扩大建议,以占据整个屏幕的宽度。是否有任何方法可以使用dialog或SearchView实现自定义宽度。我宁愿不使用图书馆,除非那是唯一的选择。如果这是可能的,或者使用其中一个实现更容易,那么就可以了 下面是对话框实现对我来说的样子: 以下是SearchView实现对我的影响: 是从google地址搜索中选择位置的存储库。它实现了全屏搜索列表 自定义搜索视图 这是您可以做到的: 第一步 只需使用android搜索:自定义建议布局,android,android-layout,search,search-suggestion,Android,Android Layout,Search,Search Suggestion,我一直在遵循SearchView和dialog实现的指导。两者都在下面可见。有很多问题是关于如何定制搜索框的,但是很少有关于定制建议的UI的。(这些是关于颜色/字体的,默认值对我来说很好。)我希望能够扩大建议,以占据整个屏幕的宽度。是否有任何方法可以使用dialog或SearchView实现自定义宽度。我宁愿不使用图书馆,除非那是唯一的选择。如果这是可能的,或者使用其中一个实现更容易,那么就可以了 下面是对话框实现对我来说的样子: 以下是SearchView实现对我的影响: 是从google
RecyclerView
或可扩展列表或您想要使用的列表创建一个布局
步骤2
在您的活动(CityActivity
)中,您需要执行以下操作:
此处
suggestList
是提供给您的列表的数据。您应该为搜索结果创建一个活动,并编写一个布局xml文件,其中listview或recyclerview填充宽度使用match_父值。
内容必须是适配器中的搜索结果 。。这可能help@lf215你可以自定义istview。。。。
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());
}
}
}
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) {
}
});
}