You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.6 KiB
65 lines
2.6 KiB
package org.jetbrains.compose.resources.demo.shared |
|
|
|
import androidx.compose.foundation.layout.PaddingValues |
|
import androidx.compose.foundation.layout.fillMaxSize |
|
import androidx.compose.material.icons.Icons |
|
import androidx.compose.material.icons.filled.Edit |
|
import androidx.compose.material.icons.filled.Face |
|
import androidx.compose.material.icons.filled.Favorite |
|
import androidx.compose.material.icons.filled.Info |
|
import androidx.compose.material3.Icon |
|
import androidx.compose.material3.NavigationBar |
|
import androidx.compose.material3.NavigationBarItem |
|
import androidx.compose.material3.Scaffold |
|
import androidx.compose.material3.Text |
|
import androidx.compose.runtime.Composable |
|
import androidx.compose.runtime.getValue |
|
import androidx.compose.runtime.mutableStateOf |
|
import androidx.compose.runtime.remember |
|
import androidx.compose.runtime.setValue |
|
import androidx.compose.ui.Modifier |
|
|
|
enum class Screens(val content: @Composable (contentPadding: PaddingValues) -> Unit) { |
|
Images({ ImagesRes(it) }), |
|
Strings({ StringRes(it) }), |
|
Font({ FontRes(it) }), |
|
File({ FileRes(it) }), |
|
} |
|
|
|
@Composable |
|
internal fun UseResources() { |
|
var screen by remember { mutableStateOf(Screens.Images) } |
|
|
|
Scaffold( |
|
modifier = Modifier.fillMaxSize(), |
|
content = { screen.content(it) }, |
|
bottomBar = { |
|
NavigationBar { |
|
NavigationBarItem( |
|
selected = screen == Screens.Images, |
|
onClick = { screen = Screens.Images }, |
|
icon = { Icon(imageVector = Icons.Default.Face, contentDescription = null) }, |
|
label = { Text("Images") } |
|
) |
|
NavigationBarItem( |
|
selected = screen == Screens.Strings, |
|
onClick = { screen = Screens.Strings }, |
|
icon = { Icon(imageVector = Icons.Default.Edit, contentDescription = null) }, |
|
label = { Text("Strings") } |
|
) |
|
NavigationBarItem( |
|
selected = screen == Screens.Font, |
|
onClick = { screen = Screens.Font }, |
|
icon = { Icon(imageVector = Icons.Default.Favorite, contentDescription = null) }, |
|
label = { Text("Fonts") } |
|
) |
|
NavigationBarItem( |
|
selected = screen == Screens.File, |
|
onClick = { screen = Screens.File }, |
|
icon = { Icon(imageVector = Icons.Default.Info, contentDescription = null) }, |
|
label = { Text("Files") } |
|
) |
|
} |
|
} |
|
) |
|
}
|
|
|