Dha*_*val 7 android textfield android-jetpack-compose
我在玩 Jetpack ComposeTextField时发现键盘有一种奇怪的行为。
如果我的文本字段位于屏幕底部并且我打开键盘,则文本字段将保持隐藏在键盘后面。
我也尝试了一些解决方案。
修改android:windowSoftInputMode="adjustPan"和android:windowSoftInputMode="adjustResize"
如果我使用 adjustmentPan,有时 TextField 会随着键盘抬起,但有时不会。
这是正在发生的事情的代码和图像。
好吧,我做了一些对我有用的事情,我澄清一下,我只学习了几个星期的作曲,所以不要对我抱有太多期望,我只是做了一些可能不正确的事情,但它对我来说是有用的,可能对任何人都有用。
\n我所做的是创建一个继承 ComponentActivity() 和所有玩具的主类。
\n class Login : ComponentActivity() {\n \n override fun onCreate(savedInstanceState: Bundle?) {\n \n super.onCreate(savedInstanceState)\n setContent {\n \n HealthAtHansClientTheme {\n\n Surface(\n modifier = Modifier.fillMaxSize(),\n color = MaterialTheme.colors.background\n ) {\n LoginLayout()\n }\n }\n }\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n之后,我导入了 @Composable 函数,其中包含带有 LoginLayout 的布局,但重要的部分是:
\n val scrollState = rememberScrollState()\n Column(\n modifier = Modifier\n .fillMaxWidth()\n .fillMaxHeight()\n .padding(bottom = 100.dp, end = 40.dp, start = 40.dp)\n .verticalScroll(scrollState),\n verticalArrangement = Arrangement.SpaceAround,\n\n ) {\n\n Row(\n modifier = Modifier\n .fillMaxWidth()\n .padding(top = 30.dp)\n ) {\n Text(text = "Hola !", style = TextStyle(fontSize = 40.sp))\n }\n\n Row(horizontalArrangement = Arrangement.Center) {\n Column(\n verticalArrangement = Arrangement.Center,\n horizontalAlignment = Alignment.CenterHorizontally\n ) {\n\n\n TextField(\n maxLines = 1,\n modifier = Modifier.fillMaxWidth(),\n value = documentNumber,\n onValueChange = { documentNumber = it })\n\n Spacer(modifier = Modifier.height(100.dp))\n\n TextField(\n maxLines = 1,\n modifier = Modifier.fillMaxWidth(),\n value = privateCode,\n onValueChange = { privateCode = it })\n\n\n }\n\n }\n }\nRun Code Online (Sandbox Code Playgroud)\n请注意,文本字段之间的间距为 100,这只是为了测试其功能。
\n最后通过以下方式在我的主活动中声明 Login 类,因为 Mainactivity 默认情况下出现,但仅用于此测试,其想法只是让他们意识到我添加的行
\n\n\nvoil\xc3\xa0 现在我的 TextField 没有隐藏,我认为如果您有广泛的表单,您在清单中创建“活动”并添加行 android:windowSoftInputMode="adjustResize"\nthat这样问题就结束了。
\n我希望有更多技能和知识的人可以做更有效的事情,目前它对我有用。
\n\n如果已经有更有效的解决方案,欢迎评论,如果我的解决方案很愚蠢,我将不胜感激并提供反馈以供学习。
\n发生的另一件事是,如果您使用“DefaultPreview”运行模拟器,我尝试的所有方法都不起作用。
\n\n如果您在 App 中运行应用程序的模拟,则它可以正常工作。
\n但我想更进一步,所以我在一个发布的 apk 版本中编译了这个示例,它应该看起来应该像它应该的那样,并且它可以完美地工作,如图所示。
\n\n| 归档时间: |
|
| 查看次数: |
5068 次 |
| 最近记录: |