Android Studio Kotlin: 在ConstraintLayout上实现按钮点击展开子按钮
步骤:
- 在ConstraintLayout中添加一个按钮,并设置其id为'btn_main'。
- 在布局文件中添加三个按钮,分别为'btn_1'、'btn_2'和'btn_3',设置其visibility属性为'gone',即初始时不可见。
- 在'btn_main'的点击事件中,设置'btn_1'、'btn_2'和'btn_3'的visibility属性为'visible',即可见。
- 分别为'btn_1'、'btn_2'和'btn_3'设置点击事件。
代码:
- activity_main.xml
<?xml version='1.0' encoding='utf-8'?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android='http://schemas.android.com/apk/res/android'
xmlns:app='http://schemas.android.com/apk/res-auto'
xmlns:tools='http://schemas.android.com/tools'
android:layout_width='match_parent'
android:layout_height='match_parent'
tools:context='.MainActivity'>
<Button
android:id='@+id/btn_main'
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:text='Main Button'
app:layout_constraintBottom_toBottomOf='parent'
app:layout_constraintLeft_toLeftOf='parent'
app:layout_constraintRight_toRightOf='parent'
app:layout_constraintTop_toTopOf='parent' />
<Button
android:id='@+id/btn_1'
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:text='Button 1'
android:visibility='gone'
app:layout_constraintBottom_toTopOf='@+id/btn_main'
app:layout_constraintLeft_toLeftOf='@+id/btn_main'
app:layout_constraintRight_toLeftOf='@+id/btn_2'
app:layout_constraintTop_toTopOf='parent' />
<Button
android:id='@+id/btn_2'
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:text='Button 2'
android:visibility='gone'
app:layout_constraintBottom_toTopOf='@+id/btn_main'
app:layout_constraintLeft_toRightOf='@+id/btn_1'
app:layout_constraintRight_toLeftOf='@+id/btn_3'
app:layout_constraintTop_toTopOf='parent' />
<Button
android:id='@+id/btn_3'
android:layout_width='wrap_content'
android:layout_height='wrap_content'
android:text='Button 3'
android:visibility='gone'
app:layout_constraintBottom_toTopOf='@+id/btn_main'
app:layout_constraintLeft_toRightOf='@+id/btn_2'
app:layout_constraintRight_toRightOf='@+id/btn_main'
app:layout_constraintTop_toTopOf='parent' />
</androidx.constraintlayout.widget.ConstraintLayout>
- MainActivity.kt
package com.example.buttondemo
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity(), View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btn_main.setOnClickListener(this)
btn_1.setOnClickListener(this)
btn_2.setOnClickListener(this)
btn_3.setOnClickListener(this)
}
override fun onClick(v: View?) {
when (v?.id) {
R.id.btn_main -> {
btn_1.visibility = View.VISIBLE
btn_2.visibility = View.VISIBLE
btn_3.visibility = View.VISIBLE
}
R.id.btn_1 -> {
// do something
}
R.id.btn_2 -> {
// do something
}
R.id.btn_3 -> {
// do something
}
}
}
}
原文地址: https://www.cveoy.top/t/topic/nz9k 著作权归作者所有。请勿转载和采集!