Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 切换到显示不工作的约束布局_Java_Android_Kotlin - Fatal编程技术网

Java 切换到显示不工作的约束布局

Java 切换到显示不工作的约束布局,java,android,kotlin,Java,Android,Kotlin,我正在尝试构建一个简单的Android switch(availabilitiesSwitch)来显示受约束布局的内容 开关如下所示: <Switch android:id="@+id/availabilitiesSwitch" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_margi

我正在尝试构建一个简单的Android switch(availabilitiesSwitch)来显示受约束布局的内容

开关如下所示:

<Switch
            android:id="@+id/availabilitiesSwitch"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="24dp"
            android:layout_marginEnd="16dp"
            android:showText="false"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        (activity as BaseActivity).run {

            availabilitiesSwitch?.let {
                it?.setOnCheckedChangeListener { buttonView, isChecked ->
                    if(isChecked) {
                        showShifts()
                    }
                }
            }

        }
    }
其中showshift如下所示(setupAvailabilities是我要切换的受约束布局):

fun showShifts() {
    setupAvailabilities.visibility = View.VISIBLE
}

当前,availabilitiesSwitch的计算结果为null。有人能想到原因吗?

将您的逻辑移动到查看创建的功能上,
可用性开关在那里不应为空:

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
    (activity as BaseActivity).run {

        availabilitiesSwitch?.setOnCheckedChangeListener { buttonView, isChecked ->
            if(isChecked) {
                showShifts()
            }
        }
    }
}

在片段中,视图不会在onCreate()中膨胀。它们将在onCreateView()中膨胀,因此这是访问它们的最早可能方式。请参阅的可能副本