我正在尝试构建一个简单的Android开关(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()
}
}
}
}
}
其中showShifts如下所示(setupAvailabilities是我要切换的受限布局):
fun showShifts() {
setupAvailabilities.visibility = View.VISIBLE
}
当前,availabilitiesSwitch被评估为空。有人能想到原因吗?
答案 0 :(得分:1)
将您的逻辑移至onViewCreated
函数,其中availabilitiesSwitch
不应为null:
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
(activity as BaseActivity).run {
availabilitiesSwitch?.setOnCheckedChangeListener { buttonView, isChecked ->
if(isChecked) {
showShifts()
}
}
}
}