2013-12-17 160 views
0

有人知道爲什麼下面的代碼沒有居中在按鈕文本居中textView在RelativeLayout

但第二個呢?

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" > 

    <Button 
     android:id="@+id/gotItButton" 
     android:layout_width="250dp" 
     android:layout_height="50dp" 
     android:layout_gravity="center" 
     android:layout_marginTop="5dp" 
     android:background="@drawable/btn_selector" 
     android:padding="0dp" /> 

    <com.m.view.text.MyTextView 
     android:id="@+id/gotItText" 
     style="@style/textOnBg" 
     android:layout_marginTop="25dp" 
     android:text="Got it" 
     android:textColor="#00bcfe" 
     android:textSize="16dp" 
     android:textStyle="italic" /> 
</RelativeLayout> 

gravity在父母和每個孩子layout_gravity是相同的

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" > 

     <Button 
      android:id="@+id/gotItButton" 
      android:layout_width="250dp" 
      android:layout_height="50dp" 
      android:layout_gravity="center" 
      android:layout_marginTop="5dp" 
      android:layout_centerInParent="true" 
      android:background="@drawable/btn_selector" 
      android:padding="0dp" /> 

     <com.m.view.text.MyTextView 
      android:id="@+id/gotItText" 
      style="@style/textOnBg" 
      android:layout_marginTop="25dp" 
      android:layout_centerInParent="true" 
      android:text="Got it" 
      android:textColor="#00bcfe" 
      android:textSize="16dp" 
      android:textStyle="italic" /> 
    </RelativeLayout> 
+0

你問關於按鈕不居中還是文本視圖不居中? – gaurav5430

+0

那麼,對於初學者來說,第一個代碼在TextView中不包含重力屬性,第二個代碼沒有。由於您的RelativeLayouts寬度設置爲match_parent,因此我們如何知道文本不僅僅是填充整個寬度? – Snailer

+0

你沒有做任何關於在第一個中心化TextView的事情。 RelativeLayout上的'android:gravity =「center」'不是關於你的孩子的。 –

回答

6

gravity是你的按鈕內。 layout_gravity就在線上(中心在母線上)

所以,你不需要在你的RelativeLayout中使用重力,你可以在Button中移動它。

並從按鈕中刪除layout_gravity,因爲您使用的是centerInParent

+0

重力在裏面 - 所以當在RelativeLayout中它應該影響所有的孩子。沒有? –

+0

理論上。但爲此,最好在子節點上使用centerInParent(如果父節點爲RelativeLayout)或layout_gravity(如果父節點是LinearLayout)。請注意,一個孩子也可以是另一個容器,所以......沒有任何問題 –