Anh*_*nun 18 android searchview android-search android-styles
我的应用程序中有一个SearchView小部件,我想问一些关于使它自定义的问题.首先,您只能通过点击搜索图标开始搜索,有没有办法让整个SearchView可点击?此外,还有一种方法可以在单击时使SearchView显示为这样吗?
一只忙碌的猫http://i41.tinypic.com/rr2ow4.png ![] [1]
它现在处于这种状态:
一只忙碌的猫http://i41.tinypic.com/11jlu2p.png ![] [1]
这是我的代码:
citySearch = (SearchView) findViewById(R.id.city_search_bar);
citySearch.setBackgroundResource(R.drawable.search_background);
citySearch.setOnSearchClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
citySearch.setIconifiedByDefault(true);
//citySearch.setIconified(true);
}
});
citySearch.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextChange(String text) {
((Filterable) cityListView.getAdapter()).getFilter().filter(text);
return false;
}
@Override
public boolean onQueryTextSubmit(String text) {
return false;
}
});
try
{
Field searchField = SearchView.class.getDeclaredField("mSearchButton");
searchField.setAccessible(true);
ImageView searchBtn = (ImageView)searchField.get(citySearch);
searchBtn.setImageResource(R.drawable.search_icon);
searchBtn.setScaleType(ScaleType.FIT_CENTER);
searchPlate.setBackgroundResource(R.drawable.search_background);
}
catch (NoSuchFieldException e)
{
Log.e("SEARCHSTYLEERROR",e.getMessage(),e);
}
catch (IllegalAccessException e)
{
Log.e("SEARCHSTYLEERROR",e.getMessage(),e);
}
Run Code Online (Sandbox Code Playgroud)
Eri*_*Liu 31
默认情况下,SearchView是"图标化",显示为放大镜图标,仅当用户单击图标时,编辑字段才会展开.
要使用户能够单击SearchView上的任意位置并展开输入字段.我们只需要添加一个点击监听器,并在用户点击时调用setIconified(false).
searchView = (SearchView)findViewById(R.id.searchView);
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchView.setIconified(false);
}
});
Run Code Online (Sandbox Code Playgroud)
默认情况下,SearchView 是“图标化”的。所以你应该在java中使用这个代码:
SearchView searchView = (SearchView) findViewById(R.id.searchView);
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchView.setIconified(false);
}
});
Run Code Online (Sandbox Code Playgroud)
或在 xml 中使用它:
<SearchView
android:id="@+id/searchView"
android:iconifiedByDefault="false" />
Run Code Online (Sandbox Code Playgroud)
这两种方式是正确的,但图标显示不同。
| 归档时间: |
|
| 查看次数: |
7515 次 |
| 最近记录: |