androidsearch:自定义build议布局

对于SearchView和对话框实现,我一直在跟随这里的方向。 两者都在下面可见。 关于定制search框的SO有很多问题,但很less有关于定制UIbuild议的问题。 (那些是关于颜色/字体,默认情况下对我来说很好。)我想能够扩大build议占据整个屏幕的宽度。 有没有什么办法来使用对话框或SearchView实现自定义宽度。 除非这是唯一的select,否则我宁愿不使用图书馆。 如果这是可能的或更容易与一个罚款的实现。

以下是对话框实现对我来说的样子: 在这里输入图像说明

以下是SearchView实现对我来说的样子: 在这里输入图像说明

Solutions Collecting From Web of "androidsearch:自定义build议布局"

这是你如何做到的: 这是我创造的 步骤1 :

只需创build一个包含回收站视图或可扩展列表的布局,或者select您想要使用的列表。

第2步:在你的活动(CityActivity)你需要做到这一点:

  1. 像这样创build一个处理程序:

私人静态类SearchHandler扩展处理程序{

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

将textchangelistener放在您的search文本中

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

这里的build议列表是提供给你的列表的数据

这是从谷歌地址searchselect的地方的存储库。 它具有全屏search列表的实现。

自定义的Searchview

自定义的searchview

您应该为search结果创build一个活动,并使用match_parent值编写一个布局xml文件,其中listview或recyclerview填充宽度。 内容必须是适配器中的search结果。