我已经做了很多研究,但这太奇怪了,我不得不发布这个问题。我有一个垂直的 LinearLayout,在单行 EditText 上方的 ScrollView 上方有一个自定义视图。自定义视图的固定高度为 10dp,而 EditText 的高度为 wrap_content,所以它是提示的高度。ScrollView 的权重为 1,因此它应该占据两者之间的所有空间。我在https://stackoverflow.com/a/7998024/852795之后对此代码进行了建模。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<com.program.main.StatsBar
android:id="@+id/mvStatsBar"
android:layout_width="match_parent"
android:layout_height="10dp" />
<ScrollView
android:id="@+id/tvScrollMessage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scrollbars="vertical"
android:fillViewport="true" >
<TextView
android:id="@+id/tvMessage"
android:textIsSelectable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:gravity="left"
android:textSize="14sp" />
</ScrollView>
<EditText android:id="@+id/command_entry"
android:background="@drawable/command_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:lines="1"
android:singleLine="true"
android:textSize="16sp"
android:hint="@string/command_entry" />
</LinearLayout>
特别奇怪的是,在我的手机上,它是 Android v2.3.4,它完美地工作 - ScrollView 填充文本然后滚动,所有这些都在 EditText 之上。然而,在我的 v4.3 平板电脑上,ScrollView 在 EditText 下重叠,因此 ScrollView 的最后一行总是被 EditText 遮住一半。关于这里可能发生什么的任何想法?