我有一些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>
你能帮帮我吗?
谢谢!
答案 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
个孩子指定边距时,您有两个选择,其中一个必须选择:
margin
属性。这有效地将所有侧边距设置为margin
的值。 注意:此选项具有优先权,这意味着,如果您为margin
设置非负值,则会忽略您为任何边距单独设置的任何值。您正在设置全局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"
/>