Не удается скрыть элемент <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}.

Другие вопросы по тегам