步骤:

  1. 在ConstraintLayout中添加一个按钮,并设置其id为'btn_main'。
  2. 在布局文件中添加三个按钮,分别为'btn_1'、'btn_2'和'btn_3',设置其visibility属性为'gone',即初始时不可见。
  3. 在'btn_main'的点击事件中,设置'btn_1'、'btn_2'和'btn_3'的visibility属性为'visible',即可见。
  4. 分别为'btn_1'、'btn_2'和'btn_3'设置点击事件。

代码:

  1. 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>
  1. 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
            }
        }
    }
}
Android Studio Kotlin: 在ConstraintLayout上实现按钮点击展开子按钮

原文地址: https://www.cveoy.top/t/topic/nz9k 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录