Не могу скрыть <include>элемент программно - PullRequest
0 голосов
/ 25 октября 2019

Android Studio 3.6

в приложении / 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 Ответ

1 голос
/ 25 октября 2019

setVisibility метод принадлежит классу View. Тег <include> на самом деле не layout(View + ViewGroups). Вот почему вы не найдете метод setVisibility.

Чтобы скрыть включенный макет, вы можете присвоить идентификатор родительскому макету в макете bluetooth_bottom_container, а затем изменить его видимость с binding.blueToothBottonContainer.{parent_layout_id}.

...