无法以编程方式隐藏<include>项目

时间:2019-10-25 07:53:49

标签: android android-viewbinding

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.
        }
}

但找不到类似setVisible

的方法

为什么?

1 个答案:

答案 0 :(得分:1)

setVisibility方法属于View类。 <include>标记实际上不是layout(View + ViewGroups)。这就是为什么您找不到setVisibility方法的原因。

要隐藏包含的布局,可以在bluetooth_bottom_container布局中为父布局提供ID,然后从binding.blueToothBottonContainer.{parent_layout_id}更改其可见性。

相关问题