Не удается скрыть элемент <include> программно
Android Studio 3.6
в app/build.gradle:
android {
viewBinding.enabled = true
В моей деятельности:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = QrBluetoothSwipeActivityBinding.inflate(layoutInflater)
}
в моем qr_bluetooth_swipe_activity.xml
<include
android:id="@+id/blueToothBottonContainer"
layout="@layout/bluetooth_bottom_container"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
Я хочу программно скрыть blueToothBottonContainer. Итак, я пробую это:
private fun setBottomContainreViewMode(isQrScreenVisible: Boolean) {
if (isQrScreenVisible) {
binding.qrBottonContainer.
}
}
но не нашел метод smt вроде setVisible
Почему?
1 ответ
Решение
setVisibility принадлежит классу View.<include>
тег на самом деле не layout(View + ViewGroups)
. Вот почему вы не найдетеsetVisibility
метод на нем.
Чтобы скрыть включенный макет, вы можете указать идентификатор родительскому макету в своем bluetooth_bottom_container
макет, а затем измените его видимость с binding.blueToothBottonContainer.{parent_layout_id}
.