2016-01-20 171 views
1

我想將button放在另一個下面。但爲什麼在爲提交button添加紅色後button的大小看起來不一樣?按鈕大小看起來不同

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="2dp" 
     android:orientation="horizontal" 
     android:weightSum="3" > 

     <Button 
      android:id="@+id/addClaims1" 
      android:layout_width="334dp" 
      android:layout_height="61dp" 
      android:drawableRight="@mipmap/claims" 
      android:layout_marginLeft="15dp" 
      android:layout_marginTop="10dp" 
      android:text="add claims" /> 

    </LinearLayout> 

    <Button 
     android:id="@+id/submit" 
     android:background="@color/indian_red" 
     android:layout_width="334dp" 
     android:layout_marginLeft="15dp" 
     android:layout_height="61dp" 
     android:layout_below="@+id/linearLayout2" 
     android:textColor="@color/white" 
     android:drawableRight="@mipmap/done" 
     android:text="submit" /> 

</RelativeLayout> 

enter image description here

之間,有沒有一種方法,使附近的文字圖標顯示?

+1

肯定的,因爲'機器人:layout_marginLeft =」 2dp「'在父'LinearLayout'中。 – Fllo

+0

@Fell \t 我刪除它,但大小仍然看起來不同..提交按鈕看起來比添加索賠按鈕 –

+0

更大也許你需要刪除按鈕的部件上的填充和邊距。否則,這是圖像的按鈕,其中有一個填充... – Fllo

回答

3

而不是設置按鈕的背景顏色,你必須在風格給它分配其添加到您的第二個按鈕。確保兩個drawable的分辨率相同,以獲得類似大小的按鈕。對於按鈕

XML代碼:

<Button 
    android:id="@+id/button_custom" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Custom Button" 
    android:drawableRight="@mipmap/done" 
    android:theme="@style/ButtonTheme" /> 

,打造這種風格:

<style name="ButtonTheme" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="colorButtonNormal">@color/indian_red</item> 
    <item name="android:textColor">@color/white</item> 
</style> 
1

刪除

android:layout_marginLeft="2dp" 

從你的LinearLayout。

或者,如果需要

+1

我刪除它,但大小仍然看起來不同..提交按鈕看起來比添加索賠按鈕大 –

2

這是因爲默認情況下,原來的按鈕使用具有邊境附近的透明空間的背景圖像。您還可以注意到角落是圓角的。

按鈕本身實際上是相同的大小。

在你的情況下,你應該爲這兩個圖像設置背景。您也可以爲此創建圖像。

您還可以注意到,您的「drawableRight」在第一個按鈕上有邊距,而在第二個按鈕上沒有邊距。這是Android中被稱爲「Nine-path drawable」的東西。

1

問題出在android:layout_marginLeft="2dp"android:background="@color/indian_red"

解決方案:

給那些按鈕相同style像@Kartik Sharma表示,然後這是一個看起來應該像什麼變化,設置之後:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentTop="true" 
     android:orientation="horizontal" 
     android:weightSum="3"> 

     <Button 
      android:id="@+id/addClaims1" 
      android:layout_width="334dp" 
      android:layout_height="61dp" 
      android:layout_marginStart="15dp" 
      android:layout_marginTop="10dp" 
      android:text="add claims" /> 

    </LinearLayout> 

    <Button 
     android:id="@+id/submit" 
     android:layout_width="334dp" 
     android:layout_height="61dp" 
     android:layout_below="@+id/linearLayout2" 
     android:layout_marginStart="15dp" 
     android:text="submit" 
     android:textColor="@color/white" /> 

</RelativeLayout> 

是有讓圖標靠近文字顯示的方法?

Yes.check這樣的:

<Button 
     android:id="@+id/btncat" 
     android:layout_width="300dp" 
     android:layout_height="55dp" 
     android:layout_below="@+id/slider" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="5dp" 
     android:drawableStart="@drawable/ic_category" 
     android:gravity="center" 
     android:paddingEnd="40dp" 
     android:paddingStart="20sp" 
     android:text="@string/category" 
     android:textColor="#FFFFFF" /> 

結果:

enter image description here

與剛玩這兩個:

android:paddingEnd="40dp" 
android:paddingStart="20sp" 
+0

感謝您的答案,但抱歉,我只能選擇一個作爲答案。感謝你的幫助:) –

+1

沒問題,只是很高興幫助你:) goodluck。 – Mohsen