3
3
.
.
2
2
.
.
4
4
C
C
u
u
s
s
t
t
o
o
m
m
N
N
a
a
v
v
i
i
g
g
a
a
t
t
i
i
o
o
n
n
-
-
S
S
t
t
a
a
c
c
k
k
I
I
n
n
f
f
o
o
Android Compose currently doesn't support any Navigation Container.
So in this tutorial we will show how to implement simple Stack Navigation
when Stack is empty list of Show View Buttons is shown
when Stack is not empty last View on the Stack is shown
when Show View Button is pressed View is placed on the Stack
when Back Button is pressed last View is taken from the Stack
MainActivity.kt
package com.example.myapplication
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.foundation.Text
import androidx.compose.foundation.layout.*
import androidx.compose.material.Button
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.setContent
import androidx.compose.ui.unit.dp
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Column {
val myList = remember { mutableStateListOf<@Composable () -> Unit>() }
if (myList.size == 0) { MainList (myList) }
else { DetailsView(myList) }
}
}
}
}
@Composable
fun MainList(myList: MutableList<@Composable () -> Unit>) {
Button({ myList.add { View1() } }) { Text("Show View 1") }
Button({ myList.add { View2() } }) { Text("Show View 2") }
Button({ myList.add { View3() } }) { Text("Show View 3") }
}
@Composable
fun DetailsView(myList: MutableList<@Composable () -> Unit>) {
myList.last()()
Button({ myList.removeLast() }) { Text("Back") }
}
@Composable fun View1() { Text("Details of View 1") }
@Composable fun View2() { Text("Details of View 2") }
@Composable fun View2() { Text("Details of View 3") }
List of Views Details of View 1