1

我有一些LinearLayout对象,其中有几个东西,包括两个TextViews。不幸的是,我在它们之间有很大的空间,我不知道为什么。

自己看(在内容框架和#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>

你可以帮帮我吗?

谢谢!

4

3 回答 3

6

机器人:includeFontPadding="假"

于 2013-10-15T02:06:09.923 回答
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

瞧,所有的空间都消失了。根据您的喜好设置它们以调整 first 和 second 之间的差距TextView

编辑

我已经检查了我在上面写的未指定行为的 SDK 源。

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

  1. 设置margin属性。这有效地将所有边距设置为 的值margin注意:此选项具有优先级,这意味着,如果您为其设置非负值,margin它将忽略您为任何边距单独设置的任何值。
  2. 分别设置每个边距。

您正在设置全局margin值,这实际上导致marginTop/marginBottom值被忽略。

于 2013-01-14T21:58:21.700 回答
1

试试这个等间距

   <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"
             />
于 2013-01-14T21:32:45.977 回答