kotlin 单击在垂直滚动喷气背包合成内第一次尝试时不工作

jtjikinw  于 2023-02-24  发布在  Kotlin
关注(0)|答案(1)|浏览(113)

我正在使用水平寻呼机介绍了jetpack组成。但我面临着一些有趣的问题。为了报告确切的问题,我只使用一个标签在我的水平寻呼机有一个滚动。在我的标签底部,我添加了一个按钮与点击侦听器,但点击侦听器不工作,直到我按下3 - 4次时,用户向下滚动。
这是我的代码。

@OptIn(ExperimentalPagerApi::class)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        setContent {

            val pagerState = rememberPagerState(pageCount = 1)
            val scrollState = rememberScrollState()

            HorizontalPager(state = pagerState) { page ->

                Column(
                    modifier = Modifier
                        .verticalScroll(scrollState)
                        .fillMaxSize()
                ) {
                    Box(
                        modifier = Modifier
                            .fillMaxSize()
                            .height(1000.dp), contentAlignment = Alignment.Center
                    ) {
                        Text(text = "Box")
                    }

                    Button(
                        modifier = Modifier.fillMaxWidth(),
                        onClick = { showToastMsg("Hello") }) {
                        Text(text = "Button")
                    }
                }
            }
        }
    }

有没有人能帮我指导我做错了什么?

nhaq1z21

nhaq1z211#

我用这个代码基于你的代码,它似乎是正确的工作对我来说:

setContent {
            Column(modifier = Modifier.fillMaxSize()) {
                val pagerState = rememberPagerState(1)
                val scrollState = rememberScrollState()

                HorizontalPager(state = pagerState, pageCount = 3) { page ->

                    Column(
                        modifier = Modifier
                            .verticalScroll(scrollState)
                            .fillMaxSize()
                    ) {
                        Box(
                            modifier = Modifier
                                .fillMaxSize()
                                .height(1000.dp), contentAlignment = Alignment.Center
                        ) {
                            Text(text = "Box")
                        }

                        Button(
                            modifier = Modifier.fillMaxWidth(),
                            onClick = {
                                Log.d("Hello",  "page : $page")
                            }
                        ) {
                            Text(text = "Button")
                        }
                    }
                }
            }
        }

我用的是最新版本的伴奏器(0.29.1-alpha),所以问题可能出在你的伴奏器版本上,也可能出在showToastMsg方法上。

相关问题