我有一个简单的布局,如下所示:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ScrollView
android:layout_width="match_parent"
android:layout_height="200dp"
android:fadeScrollbars="false"
android:gravity="center_vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lineSpacingMultiplier="1.2" />
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"
android:layout_height="290dp"
android:ems="10"
android:gravity="top" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Submit"/>
</LinearLayout>
</RelativeLayout>
基本上,TextView
内有ScrollView
表示问题,我希望用户在EditText
内输入答案。
在我的AndroidManifest
中,我提供了以下内容:
<activity
android:screenOrientation="portrait"
android:windowSoftInputMode="???" >
</activity>
哪里有“???”是的,我尝试过使用以下内容:adjustPan
,adjustResize
和adjustPan|adjustResize
。
使用adjustPan
和adjustResize
,我遇到了同样的事情:当我输入并且文本不在视图中时,屏幕会自动向下滚动,因此键盘不会覆盖文本类型。但是,这里的问题是,当我尝试突出显示所选类型,复制,剪切或粘贴的键入文本时,无法访问通常显示在顶部的复制/剪切/粘贴菜单栏,因为它已被滚动观点。如果我尝试手动到达该菜单栏,则文本不再突出显示。
使用adjustPan|adjustResize
时,复制/剪切/粘贴菜单栏会在视图内和触手可及的范围内保持愉快,但如果键入太多,键入的文本最终会被键盘遮挡。
那么我怎样才能输入键入的文本永远不会被遮挡的地方,并且仍然有复制/剪切/粘贴菜单栏,并允许我根据需要进行偶尔的编辑?
答案 0 :(得分:0)
原来,问题根本与android:windowsSoftInputMode
无关。复制/剪切/粘贴栏仅在通知栏可见时才能正常工作。删除通知栏后,复制/剪切/粘贴栏的行为不正常。
为了避免在顶部看到明显的黑条,解决此问题的方法是使用:
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
所以,虽然它现在有效,但活动的外观不是我想要的100%。如果有人有比这更好的解决方法,请发表评论。