相关疑难解决方法(0)

我们如何获取可组合项在屏幕中的位置/大小?

在 Compose 中,我们如何获取可组合项在屏幕中的位置或大小?例如,我试图将地图相机聚焦在特定边界之间并添加填充。这里我需要获取与寻呼机顶部位置和TopBar底部位置相对应的填充。

在此输入图像描述

目前该屏幕的代码如下:

BoxWithConstraints {
        MapViewWithMarkers(...)
        TopAppBar(
            modifier = Modifier
                .fillMaxWidth()
                .statusBarsPadding(),
            backgroundColor = Color.Transparent,
            elevation = 0.dp,
        )
        HorizontalPager(
            state = pagerState,
            modifier = Modifier
                .align(Alignment.BottomCenter)
                .fillMaxWidth()
                .navigationBarsPadding()
                .padding(bottom = 32.dp),
            itemSpacing = 8.dp,
        ) { page ->
            val hikeOnMapCard = hikeMarkerList[page]
            HikeOnMapCard(hikeOnMapCard) {
                viewModel.hikeOnMapCardClicked(hikeOnMapCard.id)
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想将与此屏幕上的 TopAppBar 大小和 Pager 大小相对应的填充转发给 MapViewWithMarkers Composable

谢谢 !

android android-jetpack-compose

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

Jetpack Compose - 修饰符顺序

文档说修饰符是从左边应用的。但从这个例子来看,它们似乎是从右侧应用的:首先边框,然后填充,因为文本和边框之间没有空格

Text("Hi there!", Modifier.padding(10.dp).border(2.dp, Color.Magenta))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

android modifier android-jetpack android-jetpack-compose

8
推荐指数
3
解决办法
2449
查看次数

喷气背包中不同类型的宽度组成

我正在 jetpack compose 的文本字段中工作。我想建立这样的东西

在此输入图像描述

TextField(
            value = value,
            onValueChange = {
                value = it
            },
            modifier = Modifier
                .requiredWidth(56.dp)
                .padding(10.dp),
            colors = TextFieldDefaults.textFieldColors(
                backgroundColor = OffWhite,
                focusedIndicatorColor = TealLight,
                cursorColor = TealLight
            )
        )
Run Code Online (Sandbox Code Playgroud)

场景1

当我尝试这个时

 .requiredWidth(56.dp)
Run Code Online (Sandbox Code Playgroud)

或者

.width(56.dp)
Run Code Online (Sandbox Code Playgroud)

设计上看起来是这样的

在此输入图像描述

场景2

当我尝试这个时

.widthIn(min = 56.dp)
Run Code Online (Sandbox Code Playgroud)

看起来像这样

在此输入图像描述

场景3

当我尝试这个时

.fillMaxWidth()
Run Code Online (Sandbox Code Playgroud)

它占据了整个屏幕的宽度。

所以我的问题是哪一个用于哪种情况?在我的情况下最好的属性是什么?

android kotlin android-jetpack android-jetpack-compose

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