![](/img/trans.png)
[英]Navigate from Jetpack Compose to Fragment and from Fragment to Jetpack Compose Screen
[英]How to navigate from a composable to an activity or a fragment in Jetpack Compose?
在 compose 1.0.0-alpha08
中,使用AmbientContext
,在早期版本的 compose 中使用LocalContext
:
@Composeable
fun MainScreen() {
val context = LocalContext.current
Button(onClick = {
context.startActivity(Intent(context, ListActivity::class.java))
}) {
Text(text = "Show List")
}
}
这是我通常的做法(并将值传递给另一个活动):
val context = LocalContext.current
...
onClick = {
val intent = Intent(context, ListActivity::class.java)
intent.putExtra(YourExtraKey, YourExtraValue)
context.startActivity(intent)
}
除了使用LocalContext.current
导航到Composable
内的另一个 Activity 之外。
如果您能够将onClick
回调传递给 Activity/Fragment,您仍然可以像以前一样导航。 例子
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AndroidTheme {
Surface(...) {
Greeting (onClick = {
// this here is MainActivity
startDetailActivity()
})
}
}
}
}
fun startDetailActivity() {
val intent = Intent(this, DetailActivity::class.java)
startActivity(intent)
}
}
@Composable
fun Greeting(onClick: () -> Unit) {
Button(onClick = onClick) {
Text(text = "Button")
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.