我想用
记住脚手架状态()
在android Material3 compose中,但无法使用它。
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun AppFeatureScreen(viewModel: AppFeatureViewModel = viewModel()) {
val scaffoldState = rememberScaffoldState()
Scaffold() {
}
}
Run Code Online (Sandbox Code Playgroud) android kotlin material-components-android android-jetpack-compose android-jetpack-compose-material3
我知道如何使用 Material 2 Jetpack Compose 实现 BottomSheet BottomSheetScaffold。
但Material 3中没有BottomSheetScaffold。而且,官方样本中也没有关于BottomSheet的内容。
android kotlin android-jetpack-compose android-jetpack-compose-material3
我尝试使用backgroundColor参数在 Android Jetpack Compose 中设置 Material3 卡的背景颜色。
实现 'androidx.compose.material3:material3:1.0.0-alpha14'
// * Card with background color argument
Card(
modifier = Modifier
.fillMaxWidth()
.padding(16.dp),
//set background color of the card
backgroundColor = Color.Gray,
content = {
Text("Card with background color argument", modifier = Modifier.padding(16.dp),style = MaterialTheme.typography.labelLarge)
}
)
Run Code Online (Sandbox Code Playgroud)
android android-jetpack-compose android-jetpack-compose-material3
我想TopAppBar向我的 Compose 应用程序添加一个,所以我执行了以下操作:
@OptIn(ExperimentalMaterial3Api::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
AlternoTubeTheme {
// A surface container using the 'background' color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Scaffold(
topBar = {
TopAppBar(
title = {
Text(
stringResource(id = R.string.app_name),
maxLines = 1,
overflow = TextOverflow.Ellipsis
)
},
)
},
content = { innerPadding ->
MyAppTheme(modifier = Modifier.padding(innerPadding))
}
)
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我运行应用程序时,我的TopAppBar:
而在预览图像上,应用栏确实有颜色:
接下来我可以尝试什么来获得正确的颜色?
android kotlin android-jetpack-compose android-jetpack-compose-material3
我正在开发 Jetpack Compose (1.3.0-beta03) 和 Material3 (1.0.0-beta03) 应用程序。
我想向用户展示一个具有不同语言的简单下拉菜单,并且以下代码与您在网上找到的代码没有太大不同:
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun Settings() {
val languages = listOf("it", "en", "de", "ro", "fr", "es")
var expanded by remember { mutableStateOf(false) }
var selectedOptionText by remember { mutableStateOf("ro") }
ExposedDropdownMenuBox(
modifier = Modifier.padding(16.dp),
expanded = expanded,
onExpandedChange = { expanded = !expanded },
) {
TextField(
readOnly = true,
value = selectedOptionText,
onValueChange = {},
label = { Text(stringResource(R.string.default_reading_language)) },
trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },
colors = ExposedDropdownMenuDefaults.textFieldColors(),
modifier = …Run Code Online (Sandbox Code Playgroud) android android-jetpack-compose android-compose-textfield android-jetpack-compose-material3 android-compose-exposeddropdown
我正在尝试按照本指南将项目从 Material2 规范迁移到 Material 3 撰写库。
目前Material2中的LazyColumn已经集成了Pull刷新功能,可以在这里找到
但是,我没有找到 Material3 的任何此类功能。这里有一个开放的问题跟踪器,但他们说这个功能只会在今年年中才会被考虑,等待的时间太长了。
有谁知道这种情况应该如何处理?拉动刷新是我们应用程序用户流程的重要流程,因此没有它不是一个选项。
accompanist/swipeToRefresh即使它已被弃用,我们还应该使用吗?
我还不精通编写自定义组合组件,因此任何帮助解决这个问题的帮助将不胜感激
android material-design android-jetpack-compose android-jetpack-compose-material3
有没有办法改变滑块拇指大小?我认为现在我们只能操纵颜色
var sliderPosition by remember { mutableStateOf(0f) }
Text(text = sliderPosition.toString())
Slider(
value = sliderPosition,
onValueChange = { sliderPosition = it },
valueRange = 0f..100f,
onValueChangeFinished = {
// launch some business logic update with the state you hold
// viewModel.updateSelectedSliderValue(sliderPosition)
},
steps = 5,
colors = SliderDefaults.colors(
thumbColor = MaterialTheme.colors.secondary,
activeTrackColor = MaterialTheme.colors.secondary
)
)
Run Code Online (Sandbox Code Playgroud)
android slider seekbar-thumb android-jetpack-compose android-jetpack-compose-material3
我有以下可组合函数来构建芯片:
@Composable
fun CategoryChip(
category: String,
isSelected: Boolean = false,
onSelectedCategoryChanged: (String) -> Unit,
onExecuteSearch: () -> Unit
) {
Surface(
modifier = Modifier.padding(end = 8.dp, bottom = 8.dp),
elevation = 8.dp,
shape = RoundedCornerShape(16.dp),
color = when {
isSelected -> colorResource(R.color.teal_200)
else -> colorResource(R.color.purple_500)
}
) {
Row(modifier = Modifier
.toggleable(
value = isSelected,
onValueChange = {
onSelectedCategoryChanged(category)
onExecuteSearch()
}
)) {
Text(
text = category,
style = MaterialTheme.typography.body2,
color = Color.White,
modifier = Modifier.padding(8.dp)
)
}
}
} …Run Code Online (Sandbox Code Playgroud) android android-chips android-jetpack-compose android-jetpack-compose-material3
在 XML 中,我们有 Material3 底部工作表。它允许我们设置底部工作表的行为。它可以像这样更新:
bottomSheetBehavior.halfExpandedRatio = 0.6
bottomSheetBehavior.state = BottomSheetBehavior.STATE_HALF_EXPANDED
Run Code Online (Sandbox Code Playgroud)
我正在将项目迁移到 Compose。我的应用程序将这个半展开比例用于 3 个定位的底部工作表:折叠、半展开、展开。现在我正在尝试创建这样的底表:
val sheetState = rememberBottomSheetState(
initialValue = BottomSheetValue.Collapsed
)
val scaffoldState = rememberBottomSheetScaffoldState(
bottomSheetState = sheetState
)
BottomSheetScaffold(
scaffoldState = scaffoldState,
sheetContent = {}
) {}
Run Code Online (Sandbox Code Playgroud)
但看起来我们这里没有这些行为属性。我们能否获得与 XML 中具有一半展开的底部表相同的行为?
android kotlin bottom-sheet android-jetpack-compose android-jetpack-compose-material3
有没有办法让菜单与页眉和页脚重叠?
我正在使用androidx.compose.material3.Scaffold和NavigationDrawer。
似乎脚手架的抽屉插槽已被删除 - https://android-review.googlesource.com/c/platform/frameworks/support/+/1896804因此https://developer.android.com/jetpack/compose上的说明/layouts/material?hl=hu#drawers不再适用。
android material-design material-components-android android-jetpack-compose android-jetpack-compose-material3
android ×10
android-jetpack-compose-material3 ×10
kotlin ×4
material-components-android ×2
android-compose-exposeddropdown ×1
bottom-sheet ×1
slider ×1