标签: android-jetpack-compose-material3

Material 配色方案中 Jetpack Compose 中导航栏的颜色是什么?

当我试图强制NavigationBar使用MaterialTheme.colorScheme.surface颜色时(请参阅材料 3 指南),应用程序的背景颜色和颜色NavigationBar不同。示例: 的颜色NavigationBar#f1edf7,但背景颜色为#fffbfe。背景应用程序颜色也是MaterialTheme.colorScheme.surface如此。

导航栏

android navigationbar android-jetpack-compose material-you android-jetpack-compose-material3

11
推荐指数
3
解决办法
6571
查看次数

此材质 API 是实验性的,将来可能会更改或删除。使用新的material3卡时android出现错误

如何设置material3卡的标高?我正在使用新的material3卡并收到错误

此材质 API 是实验性的,将来可能会更改或删除。

这是代码->

    @ExperimentalMaterial3Api
    @Composable
    fun ProfileCard(
        modifier: Modifier = Modifier
    ) {
        Card(
            modifier = modifier
                .fillMaxWidth()
                .wrapContentHeight()
                .padding(all = 16.dp),
            shape = RoundedCornerShape(size = 16.dp),
            containerColor = MaterialTheme.colorScheme.surface,
            border = BorderStroke(width = 1.dp, color = MaterialTheme.colorScheme.inverseOnSurface),
            elevation = CardDefaults.outlinedCardElevation()
        ) {
    ...
        }
    }
Run Code Online (Sandbox Code Playgroud)

由于海拔引起的错误,我无法运行应用程序如何设置海拔?

编辑:通过添加解决了问题

elevation = CardDefaults.outlinedCardElevation(defaultElevation = 1.dp)
Run Code Online (Sandbox Code Playgroud)

为什么我们必须为CardDefaults.outlinedCardElevation添加边框,为什么它默认不显示?

android material-design material-components-android android-jetpack-compose android-jetpack-compose-material3

11
推荐指数
3
解决办法
2万
查看次数

Jetpack Compose 中的 Material3 颜色协调

在使用基于视图的系统时,我们可以使用以下代码来协调颜色。

MaterialColors.harmonizeWithPrimary(context, colorToHarmonize)
Run Code Online (Sandbox Code Playgroud)

在完全迁移到 Jetpack Compose 并且所有颜色值都存储在文件中的项目中Color.kt,如何在运行时对颜色应用协调?

android android-jetpack-compose material-you android-jetpack-compose-material3 material3

10
推荐指数
1
解决办法
465
查看次数

如何使用Material 3进行滑动(拉动)刷新?

val pullRefreshState = rememberPullRefreshState(loadStatus is LoadState.Loading, onRefresh = {
    photosResponse.refresh()
})
Box(
    modifier
        .fillMaxSize()
        .pullRefresh(pullRefreshState)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我已将材料 2 更新为材料 3:

api(libs.androidx.compose.material3) // group = "androidx.compose.material3", name = "material3"
Run Code Online (Sandbox Code Playgroud)

但现在无法使用滑动刷新,没有任何东西可以导入

android android-jetpack-compose android-jetpack-compose-material3

9
推荐指数
1
解决办法
2658
查看次数

Android 在 LazyColumn 中组合 LazyRow 会产生垃圾行为

我正在尝试创建一个具有嵌套滚动行为的撰写屏幕。为此,我使用lazyColumn作为父级,并且在其中我确实有多个带有layRow的行。

val scrollState = rememberLazyListState()
LazyColumn(
    state = scrollState,
    modifier = Modifier
        .background(Color.White),
)
{
    items(100, key = { it })
    {
        LazyRow(
            contentPadding = PaddingValues(start = 16.dp, end = 16.dp),
            horizontalArrangement = Arrangement.spacedBy(10.dp)
        ) {

            items(10, key = { it }) {
                Text(text = "Text $it")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

当我滚动列表时,我的行为出现滞后。我尝试创建发布版本并看到一些改进,但行为仍然显示出一些垃圾行为。不同类型的设备上的行为有所不同。

我尝试使用 Column 作为父视图,并看到了良好的改进,但它将列表中的所有视图加载在一起。这导致了一些其他延迟问题。

当我进行宏观基准测试时,发现了很多垃圾帧。其中大多数都请求渲染操作。

在此输入图像描述

在此输入图像描述

这里有什么优化建议吗?

android android-jetpack-compose android-jetpack-compose-material3 android-compose-layout

9
推荐指数
0
解决办法
884
查看次数

如何避免模态底部工作表与 Android 中的系统导航图标重叠

Material3 模态底部表单当前与系统导航按钮重叠。有没有办法避免与系统导航按钮重叠。

这是我用来显示模态底部工作表的代码


@Composable
fun TestScreen() {
    var sheetOpened by mutableStateOf(false)

    Scaffold() {
       Box(Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
         Button(onClick = { sheetOpened = true }){
              Text("Open Bottom Sheet")  
          }
       }
    }

    if(sheetOpened){
        ModalBottomSheet(onDismissRequest = {sheetOpened = false}){
            Box(Modifier.fillMaxWidth().height(500.dp).background(Color.RED))
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

尝试将模态底板放入脚手架内,但这也不起作用。

android android-jetpack-compose android-jetpack-compose-material3

9
推荐指数
1
解决办法
1533
查看次数

如何在 Material3 compose 上进行滑动

在 Material 和 Material2 Compose上,修改器上有一个SwipeableState和一个可滑动选项。但在 Material3 中,这根本不存在。那么如何在 Material3 中创建一个 Swipeable 呢?如果有人知道请分享。

android kotlin android-jetpack-compose android-jetpack-compose-material3

8
推荐指数
1
解决办法
2697
查看次数

未解决的 ScaffoldState 与 Material3 的参考错误

Android Studio 抛出Unresolved Reference错误ScaffoldStatewith Material3. 我怎样才能让它发挥作用?

import androidx.compose.foundation.clickable
import androidx.compose.material3.*
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.navigation.NavController
import kotlinx.coroutines.launch

@Composable
fun CustomAppBar(
    title: String,
    backGroundColor: Color = Color.White,
    actions: @Composable () -> Unit = { },
    scaffoldState: ScaffoldState? = null, // Errors here...
    navController: NavController,
) {
    val scope = rememberCoroutineScope()

    SmallTopAppBar(
        title = {
            Text(
                title,
                maxLines = 1,
                overflow = TextOverflow.Ellipsis
            )
        },
        colors …
Run Code Online (Sandbox Code Playgroud)

android material-components-android android-jetpack-compose android-jetpack-compose-material3

8
推荐指数
1
解决办法
4391
查看次数

如何在jetpack compose中在顶部制作圆角

Scaffold我在我的函数中使用@Composable。里面content = {我正在使用LazyColumn. 我想要Top StartTop End转角。像这样的东西

预期输出

在此输入图像描述

我从这里尝试了这段代码,但它不起作用。

package com.example.scrollcompose

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Favorite
import androidx.compose.material.icons.filled.Menu
import androidx.compose.material3.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.example.scrollcompose.ui.theme.ScrollComposeTheme

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            ScrollComposeTheme {
                // …
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack android-jetpack-compose android-jetpack-compose-material3

8
推荐指数
1
解决办法
2万
查看次数

ModalBottomSheet 和键盘之间的空间

如何修复键盘和 ModalBottomSheet(Compose、material3) 之间的空间?我将焦点放在 TextField 上,键盘出现后遇到了问题。 androidx.compose.material3:material3:1.1.1

在此输入图像描述

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun RenameBottomSheet(
    newPersonalizedName: MutableState<String>,
    showState: MutableState<Boolean>,
    onConfirmClick: () -> Unit
) {
    val bottomSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true)
    val suffix = "${newPersonalizedName.value.length}/30"

    DragHandleBottomSheet(
        bottomSheetState = bottomSheetState,
        showState = showState,
        dragHandle = {
            BottomSheetHeader(
                iconResId = R.drawable.ic_edit,
                titleResId = R.string.rename
            )
        }) {
        Column(
            modifier = Modifier
                .background(Theme.colorScheme.bottomBarBackgroundColor)
                .padding(16.dp),
            horizontalAlignment = Alignment.CenterHorizontally
        ) {
            InputTextField(
                modifier = Modifier.fillMaxWidth(),
                text = newPersonalizedName.value,
                onValueChange = { if (it.length <= 30) newPersonalizedName.value = it },
                label …
Run Code Online (Sandbox Code Playgroud)

kotlin android-jetpack-compose android-jetpack-compose-material3

8
推荐指数
0
解决办法
620
查看次数