千家信息网

Android中如何自定义顶部导航栏

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,本文小编为大家详细介绍"Android中如何自定义顶部导航栏",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中如何自定义顶部导航栏"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一
千家信息网最后更新 2025年01月22日Android中如何自定义顶部导航栏

本文小编为大家详细介绍"Android中如何自定义顶部导航栏",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中如何自定义顶部导航栏"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

具体代码如下所示:

class HeaderBar @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : FrameLayout(context, attrs, defStyleAttr) {//重写构造方法 在java里面 我们一般是重写三个构造方法//在kotlin中 我们可以使用@JvmOverloads constructor(//     context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0//  )后面的两个参数 我们不传的可以使用的是默认值//定义一些变量private var isShowback = trueprivate var titleText: String? = nullprivate var rightText: String? = null//初始化 在init方法中 初始化布局 设置styleinit {//自定义属性val typedArray = context.obtainStyledAttributes(attrs, R.styleable.HeaderBar)//取出在布局中定义的属性isShowback = typedArray.getBoolean(R.styleable.HeaderBar_isShowBack, true)titleText = typedArray.getString(R.styleable.HeaderBar_titleText)rightText = typedArray.getString(R.styleable.HeaderBar_rightText)initView()typedArray.recycle()}//初始化控件的方法private fun initView() {//填充布局View.inflate(context, R.layout.layout_header_bar, this)mLeftIv.visibility = if (isShowback) View.VISIBLE else View.INVISIBLEtitleText?.let {mTitleTv.text = it}rightText?.let {mRightTv.text = itmRightTv.visibility = View.VISIBLE}mLeftIv.onClick {if (context is Activity)(context as Activity).finish()}}fun getRightView(): TextView {return mRightTv}}

读到这里,这篇"Android中如何自定义顶部导航栏"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0