在ConstraintLayout上有个一按钮点击按钮在按钮上方出现三个按钮并且给三个按钮分别设置点击事件不使用visibility隐藏这三个按钮使用kotlin语言在android studio软件中编写请给出详细步骤以及代码
步骤:
- 在布局文件中添加一个ConstraintLayout和一个按钮,设置按钮的id为btnExpand。
- 在ConstraintLayout中添加三个按钮,分别设置id为btn1、btn2、btn3,并设置它们的位置相对于btnExpand。
- 在kotlin文件中找到该布局文件对应的Activity或Fragment,声明三个按钮的变量,并在onCreate方法中初始化它们,并设置它们的点击事件。
- 在btnExpand的点击事件中,判断三个按钮的可见性,如果三个按钮都是可见的,则将它们隐藏,否则将它们显示出来。
代码:
布局文件:
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/btnExpand"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Expand"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/btn1" />
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 1"
app:layout_constraintTop_toBottomOf="@+id/btnExpand"
app:layout_constraintStart_toStartOf="@+id/btnExpand"
app:layout_constraintEnd_toEndOf="@+id/btnExpand"
android:visibility="gone"/>
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 2"
app:layout_constraintTop_toBottomOf="@+id/btn1"
app:layout_constraintStart_toStartOf="@+id/btnExpand"
app:layout_constraintEnd_toEndOf="@+id/btnExpand"
android:visibility="gone"/>
<Button
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button 3"
app:layout_constraintTop_toBottomOf="@+id/btn2"
app:layout_constraintStart_toStartOf="@+id/btnExpand"
app:layout_constraintEnd_toEndOf="@+id/btnExpand"
android:visibility="gone"/>
</androidx.constraintlayout.widget.ConstraintLayout>
kotlin文件:
class MainActivity : AppCompatActivity() {
private lateinit var btnExpand: Button
private lateinit var btn1: Button
private lateinit var btn2: Button
private lateinit var btn3: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnExpand = findViewById(R.id.btnExpand)
btn1 = findViewById(R.id.btn1)
btn2 = findViewById(R.id.btn2)
btn3 = findViewById(R.id.btn3)
btn1.setOnClickListener {
Toast.makeText(this, "Button 1 clicked", Toast.LENGTH_SHORT).show()
}
btn2.setOnClickListener {
Toast.makeText(this, "Button 2 clicked", Toast.LENGTH_SHORT).show()
}
btn3.setOnClickListener {
Toast.makeText(this, "Button 3 clicked", Toast.LENGTH_SHORT).show()
}
btnExpand.setOnClickListener {
if (btn1.visibility == View.VISIBLE && btn2.visibility == View.VISIBLE && btn3.visibility == View.VISIBLE) {
btn1.visibility = View.GONE
btn2.visibility = View.GONE
btn3.visibility = View.GONE
} else {
btn1.visibility = View.VISIBLE
btn2.visibility = View.VISIBLE
btn3.visibility = View.VISIBLE
}
}
}
}
``
原文地址: https://www.cveoy.top/t/topic/cPNt 著作权归作者所有。请勿转载和采集!