我正在尝试使用两个TextInputEditText
元素创建一个活动。它们被放置在页面的大约中间位置,导致它们在出现时被键盘覆盖。因此,我尝试使用windowSoftInputMode="adjustPan"
内的AppManifest.xml
滚动屏幕,以使键入时保持文本框处于可见状态。
但是,所有尝试都失败了。下面是我正在使用的布局层次结构,下面是一些我已经尝试无济于事的解决方案示例。
布局xml
<ScrollView
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:fillViewport="true"
android:isScrollContainer="false">
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputLayout
android:id="@+id/inputA"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/inputAText"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/inputB"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputEditText
android:id="@+id/inputBText"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</android.support.design.widget.TextInputLayout>
</android.support.constraint.ConstraintLayout>
</ScrollView>
AndroidManifest.xml代码段
<activity
android:name=".activities.MyActivity"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="sensorPortrait"
android:theme="@style/AppTheme.NoActionBar" />
尝试的解决方案
windowSoftInputMode="adjustPan"
添加到activity
中的相关AppManifest.xml
中(根据其他StackOverflow建议,我也尝试过adjustResize
和adjustPan|adjustNothing
)ConstraintLayout
放在ScrollView
内android:isScrollContainer="false"
添加到上述ScrollView ConstraintLayout
和TextInputEditText
限制在所述布局的底部来重新创建布局文件TextInputEditText
更改为EditText
并删除TextInputLayout
ConstraintLayout
更改为RelativeLayout
对于应该是一个相当简单的实现,我很茫然。任何进一步的建议表示赞赏。如有必要,我很乐意提供更多代码示例。
答案 0 :(得分:2)
发现了问题!在主题中,我声明了<item name="android:windowTranslucentStatus">true</item>
。由于某种原因,它中断了windowSoftInputMode="adjustPan"
,因此我将其删除。
为了使状态栏保持透明,我使用<item name="android:statusBarColor">@color/transparent</item>
。
希望有人会发现这一点有用。