键入文本时将文本字段向上组合

时间:2021-05-08 10:26:30

标签: android-jetpack-compose

当我尝试输入数据时,我的文本字段被遮蔽了:

enter image description here

enter image description here

我能做什么?

3 个答案:

答案 0 :(得分:1)

  1. 将此添加到您的活动中的 AndroidManifest.xml 和此 将调整布局调整大小选项。
<activity
    android:name=".ActivityName"
    android:windowSoftInputMode="adjustResize"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
  1. 将此 Modifier 添加到 TextField。
modifier = Modifier.navigationBarsWithImePadding(),

请参阅 this 示例应用以了解完整实施。

注意

  1. 这不是一个很好的解决方案,因为有很多注意事项。
    我添加了这个,因为没有官方解决方案,这是谷歌代码示例中使用的代码。
  2. 这仅在屏幕上只有一个 TextField 时才有效。我正在处理表单,但这不起作用。
  3. TextField 必须是垂直方向的最后一个视图。

答案 1 :(得分:0)

如果你在你的活动中添加这个,对我来说效果很好

<activity
    android:name=".MainActivity"
    android:windowSoftInputMode="adjustResize"
    ...>

除此之外,您还可以在屏幕上添加滚动条... 我添加整个测试代码只是为了说明。

@Composable
fun BigFormScreen() {
    var text by remember {
        mutableStateOf("")
    }
    Column(
        Modifier
            .fillMaxSize()
            .verticalScroll(rememberScrollState()),
        verticalArrangement = Arrangement.Center,
        horizontalAlignment = Alignment.CenterHorizontally
    ) {
        Image(
            painterResource(id = R.drawable.ic_android_orange),
            contentDescription = null,
            modifier = Modifier.size(300.dp)
        )
        TextField(value = text, onValueChange = { text = it })
    }
}

答案 2 :(得分:0)

setContent {
ProvideWindowInsets {
    JetpackComposeInsetsTheme {
        Surface(
            color = Color.Yellow,
            modifier = Modifier.fillMaxSize()
        ) {
            ContentView(modifier = Modifier
                .navigationBarsWithImePadding())
        }
    }
}
}

https://google.github.io/accompanist/api/insets/insets/com.google.accompanist.insets/ime-padding.html

https://medium.com/mobile-app-development-publication/android-jetpack-compose-inset-padding-made-easy-5f156a790979