删除TextView的上边距

时间:2013-01-14 21:29:59

标签: android android-layout android-linearlayout

我有一些LinearLayout个对象,里面有几个东西,包括两个TextView个。不幸的是,我之间有很大的空间,我不知道为什么。

自己看(在内容框架和#642954 - 14/25/9814之间):

http://i.stack.imgur.com/832QN.png

这是我的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:contentDescription="@string/smiley"
        android:padding="10dp"
        />

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:includeFontPadding="false"
        >

        <TextView android:id="@+id/contenu"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:background="@drawable/round"
             android:padding="10dp"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:layout_marginBottom="-10dp"
             />


        <TextView android:id="@+id/infos"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:gravity="right"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:padding="0dp"
             android:layout_marginTop="-10dp"
             />

    </LinearLayout>

</LinearLayout>

以下是round.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="#20000000" />

            <corners android:radius="13dp" />
        </shape>
    </item>
    <item android:bottom="2px">
        <shape xmlns:android="http://schemas.android.com/apk/res/android" >
            <solid android:color="#FFFFFF" />

            <corners android:radius="13dp" />

            <stroke
                android:width="1dp"
                android:color="#BBBBBB" />
        </shape>
    </item>

</layer-list>

你能帮帮我吗?

谢谢!

3 个答案:

答案 0 :(得分:4)

机器人:includeFontPadding = “假”

答案 1 :(得分:2)

不,不,不。您使用负边距,可能有未指定的行为(可能取决于Android操作系统版本)。我在API 8上测试了这个,而负边距根本不起作用。相反,将每个边距设置为自定义非负值,如下所示:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >

    <ImageView
        android:id="@+id/img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:contentDescription="@string/smiley"
        android:padding="10dp"
        />

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:includeFontPadding="false"
        >

        <TextView
            android:id="@+id/contenu"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="0dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="5dp"
            android:background="@drawable/round"
            android:includeFontPadding="false"
            android:padding="10dp"
            android:text="" />

        <TextView
            android:id="@+id/infos"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_marginBottom="5dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="0dp"
            android:gravity="right"
            android:includeFontPadding="false"
            android:padding="0dp"
            android:text="" />

    </LinearLayout>

</LinearLayout>

在这里,我将所有边距设置为5dp,但以下情况除外:

  • contenu的下边距:0dp
  • infos'上边距:0dp

瞧,所有的空间都消失了。根据自己的喜好设置它们,以调整第一个和第二个TextView之间的差距。

修改

我已经检查了我上面写的未指明行为的SDK源代码。

事实证明,在为LinearLayout个孩子指定边距时,您有两个选择,其中一个必须选择:

  1. 设置margin属性。这有效地将所有侧边距设置为margin的值。 注意:此选项具有优先权,这意味着,如果您为margin设置非负值,则会忽略您为任何边距单独设置的任何值。
  2. 单独设置每个边距。
  3. 您正在设置全局margin值,这有效地导致marginTop / marginBottom值被忽略。

答案 2 :(得分:0)

尝试使用等间距

   <TextView android:id="@+id/contenu"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:background="@drawable/round"
             android:padding="10dp"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:layout_marginTop="5dp"
             />


        <TextView android:id="@+id/infos"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:gravity="right"
             android:layout_margin="5dp"
             android:includeFontPadding="false"
             android:padding="0dp"
             android:layout_marginTop="5dp"
             />