我正在开发一个布局稍微复杂的 Android 应用程序,并且我正在做噩梦以使其按我想要的方式工作。我的主要布局是这样定义的:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#000000"
tools:context=".MainLayout" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="none" />
<LinearLayout
android:id="@+id/menudown"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
... buttons ...
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerInParent="true" >
... header content ...
</LinearLayout>
</RelativeLayout>
布局的想法是有一个内容框架(content),一个页脚菜单(menudown)和一个悬停在内容上的标题( header ),与屏幕顶部对齐。- 对不起,没有图像,机密项目。
根据用户所在的部分,内容会与其他布局一起膨胀,其中一些是要填写的表格。所以,我只是使用了adjustPan,一切正常。
这里的问题是:客户要求我在显示软键盘时使内容可滚动,以便用户可以查看他在其他字段上写的任何内容。
这很痛苦,因为:表单适合屏幕,所以使用内容作为滚动视图无济于事,除非它被调整大小。
并且简单地更改为 adjustResize 不起作用,因为: menudown 与软键盘一起上升,这不应该发生。此外,视觉效果很糟糕。
该应用程序已经为 iPad 制作(由其他人),并且发生了什么:menudown 保持与屏幕底部对齐,位于软键盘下方,仅向上推动内容视图。然后,内容变为可滚动的,以便用户能够完整地看到它。