Android手册之Toolbar搜索联动及监听小技巧

 更新时间:2022年09月22日 08:37:23   作者:芝麻粒儿  
这篇文章主要为大家介绍了Android手册之Toolbar搜索联动及监听小技巧示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

👉实践过程

😜监听

//返回事件的监听,也就是app:navigationIcon属性设置的图片的监听
idToolBar.setNavigationOnClickListener {
    Toast.makeText(this, "点击了返回", Toast.LENGTH_SHORT).show()
}
//右侧点击的监听
idToolBar.setOnMenuItemClickListener {
    Toast.makeText(this, it.title, Toast.LENGTH_SHORT).show()
    true
}

😜实现搜索

<?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>

重点为app:showAsAction和app:actionViewClass属性,actionViewClass表示展开哪个view,上面的android.widget.SearchView是系统的搜索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" />

关于搜索的几个监听事件

//注意import引入的SearchView 要和 menu的item中app:actionViewClass属性一致
val searchView: SearchView = idToolBar.menu.findItem(R.id.idTooBarMenuOne).actionView as SearchView
//设置搜索提示语
searchView.queryHint = "搜索"
searchView.setOnSearchClickListener {
    //当点击搜索编辑框的时候回调,刚进入的时候默认是点击搜索编辑框的
    Toast.makeText(this@ActivityToolBar, "点击了搜索框", Toast.LENGTH_SHORT).show()
}
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
    override fun onQueryTextSubmit(s: String?): Boolean {
        //点击手机软键盘搜索按钮的时候回调
        Toast.makeText(this@ActivityToolBar, "点击了搜索", Toast.LENGTH_SHORT).show()
        return false
    }
    override fun onQueryTextChange(s: String?): Boolean {
        //当搜索框中文本发生改变的时候执行
        return false
    }
})
searchView.setOnQueryTextFocusChangeListener { v, hasFocus ->
    //当得到焦点和失去焦点的时候执行
    if (hasFocus) {
        Toast.makeText(this@ActivityToolBar, "获取了焦点", Toast.LENGTH_SHORT).show()
    } else {
        Toast.makeText(this@ActivityToolBar, "失去了焦点", Toast.LENGTH_SHORT).show()
    }
}
idToolBar.menu.findItem(R.id.idTooBarMenuOne).setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
    override fun onMenuItemActionExpand(item: MenuItem?): Boolean {
        //展开时执行
        Toast.makeText(this@ActivityToolBar, "进行了展开", Toast.LENGTH_SHORT).show()
        return true
    }
    override fun onMenuItemActionCollapse(item: MenuItem?): Boolean {
        //收起时回调
        Toast.makeText(this@ActivityToolBar, "进行了收缩", Toast.LENGTH_SHORT).show()
        return true
    }
})

😜改变Overflow

OverFlow就是溢出的那三个点点。可以自己设置其他的图标,比如一个加号。而且推荐这种方式,其他在theme文件中设置style的属性不太好,官方对这块支持还差点。

idToolBar.overflowIcon=ContextCompat.getDrawable(this,R.mipmap.dragon_eight)

😜修改Menu弹出位置

只需要在你的主题中设置overlapAnchor属性节课,默认是true会从右上角展示,false为在toolbar下方展示。

当然吗,处了上面属性,还可以在其他文章中看到关于在这修改Menu的样式啥的,但其实不建议在这搞,因为这是主题,不仅仅会应用到这,还会应用到你的其他地方,都是统一的还好,可如果不是,你的处理就麻烦了。

以上就是Android手册之Toolbar搜索联动及监听小技巧的详细内容,更多关于Android Toolbar搜索联动监听的资料请关注脚本之家其它相关文章!

相关文章

  • 利用Kotlin如何实现Android开发中的Parcelable详解

    利用Kotlin如何实现Android开发中的Parcelable详解

    这篇文章主要给大家介绍了关于利用Kotlin如何实现Android开发中的Parcelable的相关资料,并且给大家介绍了关于Kotlin使用parcelable出现:BadParcelableException: Parcelable protocol requires a Parcelable.Creator...问题的解决方法,需要的朋友可以参考下。
    2017-12-12
  • Android中利用viewflipper动画切换屏幕效果

    Android中利用viewflipper动画切换屏幕效果

    这篇文章主要介绍了Android中利用viewflipper动画切换屏幕效果的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Android5.0之Activity的转场动画的示例

    Android5.0之Activity的转场动画的示例

    本篇文章主要介绍了Android5.0之Activity的转场动画的示例,非常具有实用价值,需要的朋友可以参考下
    2017-10-10
  • Android Moveview滑屏移动视图类完整实例

    Android Moveview滑屏移动视图类完整实例

    这篇文章主要介绍了Android Moveview滑屏移动视图类,很有实用价值,需要的朋友可以参考下
    2014-07-07
  • React Native之在Android上添加阴影的实现

    React Native之在Android上添加阴影的实现

    这篇文章主要介绍了React Native之在Android上添加阴影的实现方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Android 友盟第三方登录与分享的实现代码

    Android 友盟第三方登录与分享的实现代码

    这篇文章主要介绍了Android 友盟第三方登录与分享的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Android中关于百度糯米app关闭网页或窗口的方法(99%人不知)

    Android中关于百度糯米app关闭网页或窗口的方法(99%人不知)

    这篇文章主要介绍了Android中关于百度糯米app中关闭网页或窗口的方法,其实解决方法到很简单,但是很多人都不知道如何解决的,在网上也很难找到答案的,下面小编给大家揭晓答案,需要的朋友可以参考下
    2016-08-08
  • Android自定义属性 format的深入解析

    Android自定义属性 format的深入解析

    以下是对Android中的自定义属性format进行了详细的分析介绍,需要的朋友可以过来参考下
    2013-07-07
  • Android实现简易的计算器

    Android实现简易的计算器

    这篇文章主要为大家详细介绍了Android实现简易的计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-10-10
  • Android实战教程第九篇之短信高效备份

    Android实战教程第九篇之短信高效备份

    这篇文章主要为大家详细介绍了Android实战教程第九篇之短信高效备份,利用xml序列化器备份短信,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11

最新评论