<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了Android SearchView搜尋控制元件的具體實現程式碼,供大家參考,具體內容如下
設定 Hint 的文字內容
設定搜尋方塊的最大寬度
是否顯示提交按鈕,預設是false
搜尋方塊是否展開,false表示展開
是否鎖定搜尋方塊為展開狀態,false表示鎖定(放大鏡在搜尋方塊外)
鎖定搜尋方塊為展開狀態
將當前狀態切換為收縮狀態
改變軟鍵盤的右下角的確認鍵值
EditorInfo.IME_ACTION_SEARCH
表示右下角為搜尋
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <ListView android:layout_height="match_parent" android:layout_width="match_parent" android:id="@+id/mainListView1"/> </LinearLayout>
java程式碼
public class MainActivity extends AppCompatActivity { private ListView mListView; private ArrayAdapter mArrayAdapter; private String[]data={"a同學","b同學","c同學","d同學","A宿舍","B學校","C食堂","D教室","AA制"}; private SearchView mSearchView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mArrayAdapter=new ArrayAdapter<String>(this,android.R.layout.simple_expandable_list_item_1,data); mListView=findViewById(R.id.mainListView1); mListView.setAdapter(mArrayAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu,menu); MenuItem MenuItem=menu.findItem(R.id.action_search); mSearchView=(SearchView) MenuItemCompat.getActionView(MenuItem); mSearchView.setQueryHint("請輸入關鍵詞"); mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener(){ @Override public boolean onQueryTextSubmit(String p1) { //點選搜尋按鈕事件 //收起鍵盤 mSearchView.clearFocus(); //收起搜尋方塊 mSearchView.onActionViewCollapsed(); return false; } @Override public boolean onQueryTextChange(String p1) { //當搜尋方塊的文字內容發生變化時呼叫 mArrayAdapter.getFilter().filter(p1); return false; } }); return super.onCreateOptionsMenu(menu); } }
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/action_search" app:actionViewClass="android.support.v7.widget.SearchView" app:showAsAction="ifRoom" /> <item android:id="@+id/action_settings" app:showAsAction="never"/> </menu>
效果圖
總結了幾個比較常見的問題,並在網上找到了相應的解決方案,親測有效
問題1:如何去掉下劃線或自定義背景
try { //--拿到位元組碼 Class<?> argClass = mSearchView.getClass(); //--指定某個私有屬性,mSearchPlate是搜尋方塊父佈局的名字 Field ownField = argClass.getDeclaredField("mSearchPlate"); //--暴力反射,只有暴力反射才能拿到私有屬性 ownField.setAccessible(true); View mView = (View) ownField.get(mSearchView); //--設定背景 mView.setBackgroundColor(Color.TRANSPARENT); } catch (Exception e) { e.printStackTrace(); }
問題2:自定義文字與遊標的顏色
int searchPlateId = mSearchView.getContext().getResources() .getIdentifier("android:id/search_plate", null, null); View searchPlate = mSearchView.findViewById(searchPlateId); if (searchPlate != null) { int searchTextId = searchPlate.getContext().getResources() .getIdentifier("android:id/search_src_text", null, null); //自定義文字顏色 TextView searchText = (TextView) searchPlate.findViewById(searchTextId); if (searchText != null) { searchText.setTextColor(Color.WHITE); searchText.setHintTextColor(Color.WHITE); } try { //自定義遊標顏色 Field mCursorDrawableRes=TextView.class.getDeclaredField("mCursorDrawableRes"); mCursorDrawableRes.setAccessible(true); mCursorDrawableRes.set(searchText, R.drawable.cursor_color); } catch (Exception e){} }
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFF0000"/> <size android:width="1dp"/> </shape>
問題3:改變圖示渲染顏色為白色
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45