标签: android-compose-dropdownmenu

Jetpack Compose 中的下拉按钮/轮式选取器/微调器

Jetpack Compose 中是否有针对诸如 Spinner/Wheel Picker 或 Dropdown Button 之类的视觉组件的标准实现?

android android-spinner android-jetpack-compose android-compose-dropdownmenu

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

无法更改 DropdownMenu 的背景

我正在尝试按照本教程进行操作

但我需要更多关于下拉列表的自定义用户界面。我需要将弹出背景设置为圆形。但是当我添加.clip(RoundedCornerShape(20))到 s 修饰符中时DropdownMenu,它仍然具有白色背景

下面是我的测试可组合代码:

@ExperimentalFoundationApi
@ExperimentalCoilApi
@Composable
fun TestScreen(
   navigator: AppNavigator,
) {
    var expanded by remember { mutableStateOf(false) }
    val items = listOf("A", "B", "C", "D", "E", "F")
    val disabledValue = "B"
    var selectedIndex by remember { mutableStateOf(0) }
    Box(
        modifier = Modifier
            .fillMaxSize()
            .background(Color.Cyan)
            .padding(top = 70.dp)
            .wrapContentSize(Alignment.TopStart)
    ) {
        Text(
            items[selectedIndex],
            modifier = Modifier
                .fillMaxWidth()
                .clickable(onClick = { expanded = true })
                .background(
                    Color.Gray
                )
        )
        DropdownMenu(
            expanded = expanded,
            onDismissRequest …
Run Code Online (Sandbox Code Playgroud)

android drop-down-menu android-jetpack-compose android-compose-dropdownmenu

6
推荐指数
2
解决办法
4789
查看次数

导航到另一个片段时,ExpedDropdownMenu 扩展会使应用程序崩溃

我有两个ExposedDropdownMenu在一个屏幕内有两个按钮,可以触发导航到不同的屏幕。

目前,我正在为这次崩溃而苦苦挣扎:

java.lang.IllegalArgumentException: View=androidx.compose.material.internal.PopupLayout{c8ce24f V.E...... ......ID 0,0-960,192 #1020002 android:id/content} not attached to window manager
    at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:544)
    at android.view.WindowManagerGlobal.updateViewLayout(WindowManagerGlobal.java:433)
    at android.view.WindowManagerImpl.updateViewLayout(WindowManagerImpl.java:118)
    at androidx.compose.material.internal.PopupLayout.updatePosition(ExposedDropdownMenuPopup.kt:360)
    at androidx.compose.material.internal.PopupLayout.onGlobalLayout(ExposedDropdownMenuPopup.kt:469)
    at android.view.ViewTreeObserver.dispatchOnGlobalLayout(ViewTreeObserver.java:1061)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2987)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1950)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8186)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1056)
    at android.view.Choreographer.doCallbacks(Choreographer.java:878)
    at android.view.Choreographer.doFrame(Choreographer.java:811)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1041)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:223)
    at android.app.ActivityThread.main(ActivityThread.java:7743)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:952)
Run Code Online (Sandbox Code Playgroud)

我已经尝试将 DropDown 状态提升到 ViewModel 并在导航之前折叠它,但导航的处理速度仍然比 DropDown 折叠的速度快。

目前我的应用程序正处于 Compose 迁移过程中,因此我使用 Fragments 来保存可组合项并使用导航组件进行导航。

android-jetpack-compose android-compose-exposeddropdown android-compose-dropdownmenu

6
推荐指数
1
解决办法
541
查看次数

Jetpack Compose 中公开的下拉菜单

下拉式菜单
暴露的下拉菜单

你好,我需要帮助。如何制作像照片一样的下拉菜单?有什么简单的办法吗?

android kotlin android-jetpack-compose android-compose-dropdownmenu

3
推荐指数
1
解决办法
2109
查看次数

Round corners for Dropdown menu compose android

Before, I posted here, I Googled a lot. I found the following: MaterialTheme(shapes = MaterialTheme.shapes.copy(medium = RoundedCornerShape(16.dp))){} from the following SO post: Jetpack compose DropdownMenu With rounded Corners

EDIT: I am using Material Design v3.


  MaterialTheme(shapes = MaterialTheme.shapes.copy(medium = RoundedCornerShape(16.dp))) {
            IconButton(
                            onClick = { showMenu = !showMenu }) {
                            Icon(imageVector = Icons.Outlined.MoreVert, contentDescription = "")
                            DropdownMenu(
                                expanded = showMenu,
                                onDismissRequest = { showMenu = false },
                                modifier = Modifier.background(MaterialTheme.colorScheme.background).padding(4.dp)
                            ) {
                                DropdownMenuItem(text = { Text("Refresh", fontSize = 16.sp) }, …
Run Code Online (Sandbox Code Playgroud)

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

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