我想打开datePicker
Jetpack compose 中单击按钮上的对话框。
为此,我在按钮的内部使用以下代码onClick
action.
val context = LocalContext.current
Button(onClick = {
(context as AppCompatActivity).let {
val picker = MaterialDatePicker.Builder.datePicker().build()
picker.show(it.supportFragmentManager, picker.toString())
picker.addOnPositiveButtonClickListener {
// some code
}
}
})
如果我使用的是ComponentActivity
, supportFragmentManager
不支持。
可以将活动从AppCompatActivity
?
或者还有其他方法,如果上述解决方案不正确,我可以得到解决方案吗?
您可以使用AppCompatActivity
因为它延伸了FragmentActivity
这延伸了ComponentActivity
.
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
val activity = LocalContext.current as AppCompatActivity
Button(onClick={ showDatePicker(activity)}){
Text("Picker")
}
}
}
}
fun showDatePicker(activity: AppCompatActivity){
val picker = MaterialDatePicker.Builder.datePicker().build()
activity?.let {
picker.show(it.supportFragmentManager, picker.toString())
picker.addOnPositiveButtonClickListener {
}
}
}
Note:它至少需要AppCompat 1.3.0
版本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)