ScrollView在Android v4.3中重叠EditText而不是v2.3.4

时间:2013-08-30 19:02:30

标签: android android-layout scrollview android-linearlayout

我做了一大堆研究,但这很奇怪,我不得不发布这个问题。我有一个垂直的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遮挡一半。关于这里可能发生什么的任何想法?

1 个答案:

答案 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" />