安卓Jetpack导航的问题



我使用Android Studio Canara 2020.03创建了一个Empty Compose Activity模板。这是文件"的代码;主要活动。kt":

class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
ButtonPage()
}
}
}
@Composable
fun ButtonPage(){
Button(onClick = {}){Text("Click to go next")}
}
@Composable 
fun TextPage(){
Text("Second Page")
}

我该如何修改代码,以便当您单击此按钮时,它只绘制文本?(也就是说,当你点击按钮时,程序需要先删除这个内容来绘制其他内容(。Jetpack Compose版本1.0.0-alpha09,jdk版本15,android版本11提前感谢

一个简单的解决方案是使用一个变量来指示当前屏幕。

var showSecondScreen by remember { mutableStateOf(false) }
if (!showSecondScreen) {
Button(onClick = {showSecondScreen = true}){Text("Click to go next")}
} else {
Text("Second screen")
}

这不一定是布尔值,您可以声明var currentScreen by remember { mutableStateOf("homeScreen") }并使用when块来显示哪个屏幕。

@Composable fun MyApp(currentScreen: String) {
when (currentScreen) {
"homeScreen" -> HomeScreen()
"secondScreen" -> SecondScreen()
}
}

因此,您可以将它看作一个事务,而更多地看作一个有状态导航。

但您很快就会意识到,这无法处理反向导航,因此您需要一个导航库,如jetpack组合导航、分解、组合路由器等。以下是有关jetpack合成导航的更多信息。

相关内容

  • 没有找到相关文章

最新更新