我做了一大堆研究,但这很奇怪,我不得不发布这个问题。我有一个垂直的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遮挡一半。关于这里可能发生什么的任何想法?
答案 0 :(得分:1)
我已经重现了这个问题,你似乎已经在这个文本视图中随机添加了一个10dp的边距,这在Android 2.3上没有显示,但它在4.0上显示。
<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" />