用Kotlin写一个操作栏
时间: 2023-08-23 15:04:50 浏览: 53
以下是Kotlin语言实现的一个简单操作栏:
```kotlin
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
import android.widget.LinearLayout
import kotlinx.android.synthetic.main.view_action_bar.view.*
class ActionBarView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {
init {
LayoutInflater.from(context).inflate(R.layout.view_action_bar, this, true)
}
fun setTitle(title: String) {
titleTextView.text = title
}
fun setLeftButton(iconResId: Int, onClickListener: OnClickListener) {
leftButton.visibility = View.VISIBLE
leftButton.setImageResource(iconResId)
leftButton.setOnClickListener(onClickListener)
}
fun setRightButton(iconResId: Int, onClickListener: OnClickListener) {
rightButton.visibility = View.VISIBLE
rightButton.setImageResource(iconResId)
rightButton.setOnClickListener(onClickListener)
}
}
```
这个操作栏是一个自定义的View,包含一个标题和左右两个按钮。可以使用 `setTitle`、`setLeftButton` 和 `setRightButton` 方法来设置标题和按钮的图标和点击事件。
在布局文件中使用:
```xml
<com.example.myapplication.ActionBarView
android:id="@+id/actionBarView"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
```
在代码中使用:
```kotlin
actionBarView.setTitle("My Title")
actionBarView.setLeftButton(R.drawable.ic_back, OnClickListener { finish() })
actionBarView.setRightButton(R.drawable.ic_more, OnClickListener { showPopupMenu() })
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)