android顶部逐步增大,安卓自定义注解入门-2-增加通用顶部栏

目标

熟悉注解的基本使用方法.

本文介绍为普通activity增加一个通用的顶部栏.

主要代码

定义注解

@kotlin.annotation.Retention(AnnotationRetention.RUNTIME)

@Target(AnnotationTarget.ANNOTATION_CLASS, AnnotationTarget.CLASS)

annotation class TitleBar(val value: String = "")

增加注解处理类

open class BaseActivity : AppCompatActivity() {

override fun setContentView(layoutResID: Int) {

val titleBarAnnotation = javaClass.getAnnotation(TitleBar::class.java)

if (titleBarAnnotation != null) {

var linearLayout = LinearLayout(this)

linearLayout.orientation = LinearLayout.VERTICAL

addTitleBar(titleBarAnnotation, linearLayout)

addOriginalView(layoutResID, linearLayout)

super.setContentView(linearLayout)

} else {

super.setContentView(layoutResID)

}

}

private fun addOriginalView(layoutResID: Int, linearLayout: LinearLayout) {

var params = LinearLayout.LayoutParams(

LinearLayout.LayoutParams.MATCH_PARENT,

LinearLayout.LayoutParams.MATCH_PARENT

)

var contentView = LayoutInflater.from(this).inflate(layoutResID, null, false)

linearLayout.addView(contentView, params)

}

private fun addTitleBar(titleBarAnnotation: TitleBar, linearLayout: LinearLayout) {

val textView = TextView(this)

titleBarAnnotation.value.let { textView.text = it }

linearLayout.addView(textView)

}

}

使用注解

@TitleBar(value = "顶部栏")

class MainActivity : BaseActivity() {

override fun onCreate(savedInstanceState: Bundle?) {

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

}

}

效果图:

e544d0e74187

完整源代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值