2013-01-14 119 views
1

我有一些LinearLayout對象,其中包含兩個TextView s。不幸的是,我在他們之間有一個巨大的空間,我不知道爲什麼。刪除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

bertal的答案肯定應該是公認的答案。 – theblang

回答

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. 單獨設置每個邊緣。

您正在設置全局值爲margin的值,該值有效地導致值marginTop/marginBottom被忽略。

+0

謝謝,它的工作原理!我把負餘量,以嘗試刪除空間,我忘了把它刪除後。無論如何,還是有一點空間,我怎麼能把它完全刪除? – natinusala

+0

我測試過了,'contenu'和'infos'之間沒有空格。也許你想爲'contenu'設置較少的填充,例如。 'padding =「5dp」'而不是'padding =「10dp」'?如果沒有,請張貼帶有標記空格的屏幕截圖。 – andr

+0

如果我設置填充更少的contenu它是醜陋的,再加上它不起作用X)這裏是一個圖像(以10dp填充):http://up2sha.re/uploads/LsORtQegomZK.png – natinusala

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" 
      /> 
2

機器人:includeFontPadding = 「假」