我有一行在开头对齐文本,在结尾对齐图像。当我按下图像时,我会显示一个下拉菜单,但它出现在行的开头,我希望它出现在行的末尾。
我尝试在 Modifier 组件中使用 Alignment.centerEnd 但不起作用。
我怎样才能让弹出窗口出现在行的末尾?
@Composable
fun DropdownDemo(currentItem: CartListItems) {
var expanded by remember { mutableStateOf(false) }
Box(modifier = Modifier
.fillMaxWidth()) {
Text(modifier = Modifier.align(Alignment.TopStart),
text = currentItem.type,
color = colorResource(id = R.color.app_grey_dark),
fontSize = 12.sp)
Image(painter = painterResource(R.drawable.three_dots),
contentDescription = "more options button",
Modifier
.padding(top = 5.dp, bottom = 5.dp, start = 5.dp)
.align(Alignment.CenterEnd)
.width(24.dp)
.height(6.75.dp)
.clickable(indication = null,
interactionSource = remember { MutableInteractionSource() },
onClick = {
expanded = true
}))
DropdownMenu(
expanded = expanded,
onDismissRequest …
Run Code Online (Sandbox Code Playgroud) 我是jetpack compose的新手,我正在尝试做一件我无法实现的简单事情。
\n我想要做的是在同一行中对齐一个组件(在本例中是一个表面),位于行的开头,另一个组件(列)位于行的末尾。
\n怎么才能得到这个呢?
\n我正在尝试这个,但它不起作用:
\nRow(Modifier.padding(top = 24.dp)\n .fillMaxWidth()) {\n Surface(\n modifier = Modifier.size(70.dp),\n shape = RectangleShape,\n color = MaterialTheme.colors.onSurface.copy(alpha = 0.2f)\n ) {\n // Image goes here\n }\n\n Column(modifier = Modifier.size(70.dp)) {\n Text("Total",\n fontSize = 12.sp,\n color = AppGreyDark,\n modifier = Modifier.padding(end = 16.dp))\n\n Text("12,99 \xe2\x82\xac",\n fontSize = 18.sp,\n color = AppBlackDark,\n modifier = Modifier.padding(top = 4.dp))\n }\n }\n
Run Code Online (Sandbox Code Playgroud)\n android android-jetpack-compose composable android-compose-layout
我希望文本的大小不会.dp
根据系统字体而改变。如何在 Jetpack Compose“文本”可组合项中实现此目的
目前在 Jetpack Compose 中,此代码会抛出一个异常IllegalStateException
,因为您无法嵌套两个垂直滚动的可组合项:
@ExperimentalFoundationApi
@Composable
fun MyLazyColumn() {
LazyColumn {
item {
Text(text = "My LazyColumn Title")
}
item {
LazyVerticalGrid(cells = GridCells.Fixed(4)) {
items(10) {
Box(
modifier = Modifier
.size(50.dp)
.padding(5.dp)
.background(Color.Gray)
)
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我不希望网格本身滚动,而只是显示我传递给它的可组合项的固定网格。是否有任何解决方法可以在 中显示非滚动网格LazyColumn
?
我想知道如何添加多个修饰符,例如向 Android jetpack 可组合项添加背景、填充等?
我有以下可组合项。
@Composable
fun Temp() {
Row(
modifier = Modifier
.background(Color.Red)
.height(IntrinsicSize.Min)
.fillMaxWidth()
) {
Text(text = "Hello", fontSize = 10.sp)
Icon(
imageVector = Icons.Default.Star,
contentDescription = "Star",
modifier = Modifier.fillMaxHeight()
)
}
}
Run Code Online (Sandbox Code Playgroud)
图标的高度从 24.dp 开始并没有减少。有什么办法可以实现这种行为。我希望图标大小只是父行的高度。如果文字很大。图标尺寸增大。我认为图标最小尺寸必须为 24.dp。如何让图标变小?
我有一个自定义的可组合视图(本质上是表面 + 文本),我想根据焦点状态更改表面的颜色。FocusManager#FocusNode 被标记为内部,我不知道有什么方法可以实现这一点。这只是还不可用吗?还有其他人需要解决这个问题吗?
android focusmanager android-jetpack android-jetpack-compose composable
在我的 Android 应用程序中,我使用 Jetpack Compose 作为 UI。
在屏幕中,我使用从 URL 下载的 Lottie 文件来渲染图像。Lottie 图像文件的渲染如下:
@Composable
private fun Image(assetUrl: String) {
val composition by rememberLottieComposition(LottieCompositionSpec.Url(assetUrl))
val progress by animateLottieCompositionAsState(composition, iterations = LottieConstants.IterateForever)
LottieAnimation(
composition = composition,
progress = { progress }
)
}
Run Code Online (Sandbox Code Playgroud)
我想提供一个预览可组合方法,该方法也将呈现上述Image
可组合项。理想情况下,我希望能够做这样的事情:
@Preview
@Composable
private fun ScreenPreview(){
Theme {
Surface {
Screen(assetUrl = /* Some URL */)
}
}
}
Run Code Online (Sandbox Code Playgroud)
例如,屏幕将是一些包含可组合项的可Image
组合项:
@Composable
fun Screen(assetUrl: String){
Image(
assetUrl = assetUrl
)
}
Run Code Online (Sandbox Code Playgroud)
问题:
android kotlin android-jetpack android-jetpack-compose composable
我目前正在尝试 Vue 3 的组合 API,使用一个主应用程序和几个组合函数(也称为“可组合项”)。我研究了官方文档和一些教程。完成相同任务的方法似乎有很多种,所以我一直在思考什么是最好的方法:
如何将反应变量从主应用程序传递到可组合项?我的意思是:我应该将它们作为可组合项的参数传递还是应该以其他方式进行?
如何使用其他应用程序的方法或可组合项中的其他可组合项?:)
每次,我需要创建一个可组合函数,我都会这样做:
右键单击包 -> 新建 -> Kotlin 类/文件
我最终得到的是这样的:
class MyClass {}
Run Code Online (Sandbox Code Playgroud)
现在我必须手动进行三项更改:
@Composable
注释class
为fun
constructor
这真的很烦人。但这是结果:
@Composable
fun MyClass(
//Add arguments
) {
//Add logic
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能更快地完成这个操作?Android Studio 有快捷键吗?我在菜单中找不到任何东西。
android kotlin android-studio android-jetpack-compose composable
composable ×10
android ×8
kotlin ×3
focusmanager ×1
icons ×1
javascript ×1
lazycolumn ×1
modifier ×1
vue.js ×1
vuejs3 ×1