Android手冊之Toolbar搜索聯(lián)動及監(jiān)聽小技巧
??實(shí)踐過程
??監(jiān)聽
//返回事件的監(jiān)聽,也就是app:navigationIcon屬性設(shè)置的圖片的監(jiān)聽 idToolBar.setNavigationOnClickListener { Toast.makeText(this, "點(diǎn)擊了返回", Toast.LENGTH_SHORT).show() } //右側(cè)點(diǎn)擊的監(jiān)聽 idToolBar.setOnMenuItemClickListener { Toast.makeText(this, it.title, Toast.LENGTH_SHORT).show() true }
??實(shí)現(xiàn)搜索
<?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/idTooBarMenuOne" android:icon="@mipmap/icon_xin_no" android:orderInCategory="1" android:title="搜索" app:showAsAction="ifRoom|collapseActionView" app:actionViewClass="androidx.appcompat.widget.SearchView " /> </menu>
重點(diǎn)為app:showAsAction和app:actionViewClass屬性,actionViewClass表示展開哪個view,上面的android.widget.SearchView是系統(tǒng)的搜索view。
<androidx.appcompat.widget.Toolbar android:id="@+id/idToolBar" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#0000ff" app:collapseIcon="@mipmap/icon_xin_yes" app:menu="@menu/menu" app:titleTextColor="#ff0000" />
關(guān)于搜索的幾個監(jiān)聽事件
//注意import引入的SearchView 要和 menu的item中app:actionViewClass屬性一致 val searchView: SearchView = idToolBar.menu.findItem(R.id.idTooBarMenuOne).actionView as SearchView //設(shè)置搜索提示語 searchView.queryHint = "搜索" searchView.setOnSearchClickListener { //當(dāng)點(diǎn)擊搜索編輯框的時候回調(diào),剛進(jìn)入的時候默認(rèn)是點(diǎn)擊搜索編輯框的 Toast.makeText(this@ActivityToolBar, "點(diǎn)擊了搜索框", Toast.LENGTH_SHORT).show() } searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { override fun onQueryTextSubmit(s: String?): Boolean { //點(diǎn)擊手機(jī)軟鍵盤搜索按鈕的時候回調(diào) Toast.makeText(this@ActivityToolBar, "點(diǎn)擊了搜索", Toast.LENGTH_SHORT).show() return false } override fun onQueryTextChange(s: String?): Boolean { //當(dāng)搜索框中文本發(fā)生改變的時候執(zhí)行 return false } }) searchView.setOnQueryTextFocusChangeListener { v, hasFocus -> //當(dāng)?shù)玫浇裹c(diǎn)和失去焦點(diǎn)的時候執(zhí)行 if (hasFocus) { Toast.makeText(this@ActivityToolBar, "獲取了焦點(diǎn)", Toast.LENGTH_SHORT).show() } else { Toast.makeText(this@ActivityToolBar, "失去了焦點(diǎn)", Toast.LENGTH_SHORT).show() } } idToolBar.menu.findItem(R.id.idTooBarMenuOne).setOnActionExpandListener(object : MenuItem.OnActionExpandListener { override fun onMenuItemActionExpand(item: MenuItem?): Boolean { //展開時執(zhí)行 Toast.makeText(this@ActivityToolBar, "進(jìn)行了展開", Toast.LENGTH_SHORT).show() return true } override fun onMenuItemActionCollapse(item: MenuItem?): Boolean { //收起時回調(diào) Toast.makeText(this@ActivityToolBar, "進(jìn)行了收縮", Toast.LENGTH_SHORT).show() return true } })
??改變Overflow
OverFlow就是溢出的那三個點(diǎn)點(diǎn)。可以自己設(shè)置其他的圖標(biāo),比如一個加號。而且推薦這種方式,其他在theme文件中設(shè)置style的屬性不太好,官方對這塊支持還差點(diǎn)。
idToolBar.overflowIcon=ContextCompat.getDrawable(this,R.mipmap.dragon_eight)
??修改Menu彈出位置
只需要在你的主題中設(shè)置overlapAnchor屬性節(jié)課,默認(rèn)是true會從右上角展示,false為在toolbar下方展示。
當(dāng)然嗎,處了上面屬性,還可以在其他文章中看到關(guān)于在這修改Menu的樣式啥的,但其實(shí)不建議在這搞,因?yàn)檫@是主題,不僅僅會應(yīng)用到這,還會應(yīng)用到你的其他地方,都是統(tǒng)一的還好,可如果不是,你的處理就麻煩了。
以上就是Android手冊之Toolbar搜索聯(lián)動及監(jiān)聽小技巧的詳細(xì)內(nèi)容,更多關(guān)于Android Toolbar搜索聯(lián)動監(jiān)聽的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
利用Kotlin如何實(shí)現(xiàn)Android開發(fā)中的Parcelable詳解
這篇文章主要給大家介紹了關(guān)于利用Kotlin如何實(shí)現(xiàn)Android開發(fā)中的Parcelable的相關(guān)資料,并且給大家介紹了關(guān)于Kotlin使用parcelable出現(xiàn):BadParcelableException: Parcelable protocol requires a Parcelable.Creator...問題的解決方法,需要的朋友可以參考下。2017-12-12Android5.0之Activity的轉(zhuǎn)場動畫的示例
本篇文章主要介紹了Android5.0之Activity的轉(zhuǎn)場動畫的示例,非常具有實(shí)用價值,需要的朋友可以參考下2017-10-10Android Moveview滑屏移動視圖類完整實(shí)例
這篇文章主要介紹了Android Moveview滑屏移動視圖類,很有實(shí)用價值,需要的朋友可以參考下2014-07-07React?Native之在Android上添加陰影的實(shí)現(xiàn)
這篇文章主要介紹了React?Native之在Android上添加陰影的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03Android 友盟第三方登錄與分享的實(shí)現(xiàn)代碼
這篇文章主要介紹了Android 友盟第三方登錄與分享的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Android中關(guān)于百度糯米app關(guān)閉網(wǎng)頁或窗口的方法(99%人不知)
這篇文章主要介紹了Android中關(guān)于百度糯米app中關(guān)閉網(wǎng)頁或窗口的方法,其實(shí)解決方法到很簡單,但是很多人都不知道如何解決的,在網(wǎng)上也很難找到答案的,下面小編給大家揭曉答案,需要的朋友可以參考下2016-08-08Android實(shí)戰(zhàn)教程第九篇之短信高效備份
這篇文章主要為大家詳細(xì)介紹了Android實(shí)戰(zhàn)教程第九篇之短信高效備份,利用xml序列化器備份短信,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11