您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關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 = true private var titleText: String? = null private var rightText: String? = null //初始化 在init方法中 初始化布局 設置style init { //自定義屬性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.INVISIBLE titleText?.let { mTitleTv.text = it } rightText?.let { mRightTv.text = it mRightTv.visibility = View.VISIBLE } mLeftIv.onClick { if (context is Activity) (context as Activity).finish() } } fun getRightView(): TextView { return mRightTv } }
看完上述內容,你們對Android中怎么自定義頂部導航欄有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。