2014-03-30 55 views
0

感謝lot.I現在開始android.I的我試圖將CheckBox button.I做一個小項目。查看我的項目照片:基於XML的Android窗口小部件的CheckBox

1.爲什麼CheckBox的列表不是同一個位置,它就像一個隨機的?

檢查我的XML代碼:

2.我採用了android:layout_marginTop = 「30DP」,那麼Android:TEXTSIZE = 「20dp」,它是在declaretion完美的規則?它會支持所有設備嗎?

enter image description here

<CheckBox 
     android:id="@+id/checkBox1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Wonton Soup " 
     android:layout_marginTop="30dp" 
     android:layout_gravity="center" 
     android:textSize="20dp" 
     /> 

    <CheckBox 
     android:id="@+id/checkBox2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Egg Drop Soup " 
     android:layout_gravity="center" 
     android:layout_marginTop="10dp" 
     android:textSize="20dp" 
     /> 
    <CheckBox 
     android:id="@+id/checkBox3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="French Fries " 
     android:layout_gravity="center" 
     android:textSize="20dp" 
     android:layout_marginTop="10dp" 
     /> 

同樣有很多感謝的話。

+0

'機器人:TEXTSIZE =「20dp」'爲TextViews你應該使用SP,而不是DP –

+0

你能告訴我在哪個佈局你把所有的複選框 –

回答

0

由於您的文本長度不相同的所有複選框。將值放在文本視圖的最大長度字段中。像

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

<CheckBox 
    android:id="@+id/checkBox1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="30dp" 

    android:maxWidth="125dp" 
    android:text="French Fries /Testsatrs" 
    android:textSize="20dp" /> 

<CheckBox 
    android:id="@+id/checkBox2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="10dp" 

    android:text="French Fries " 
    android:textSize="20dp" 
    android:maxWidth="125dp"/> 

<CheckBox 
    android:id="@+id/checkBox3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="French Fries " 
    android:maxWidth="125dp" 
    android:textSize="20dp" 
    android:layout_marginTop="10dp" 

    /> 

    </LinearLayout> 
+0

非常感謝兄弟。 – user3467178

1

1.爲什麼CheckBox的列表不是同一位置,它就像一個隨機的?

您正在將您的複選框與android:layout_gravity="center"對中。注意到每個CheckBox的邊界都在其父項中居中。

也許你正在而是期望是沿着這些路線的東西:

<LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_gravity="center"> 

    <CheckBox ... /> 

    <CheckBox ... /> 

    <CheckBox ... /> 

</LinearLayout> 

的複選框會出現在屏幕上,它包裝的寬度居中箱內左對齊。

2.我正在使用android:layout_marginTop =「30dp」,android:textSize =「20dp」,它是完美的declaretion規則嗎?它會支持所有設備嗎?

我不知道你的意思是這個問題是什麼,但有兩個可能的問題:

  1. 如果佈局不滾動,佈局可能會超出其邊界上的設備進行更小的屏幕。一個簡單的解決方案可能是將整個佈局包裹在ScrollView中。

  2. 對文本使用DPS不推薦,因爲用戶可能已經爲文本縮放的偏好:android:textSize="20sp"

    或者,你可能想使用Android的預設TextAppearances之一,例如:android:textAppearance="?android:attr/textAppearanceLarge"

+0

非常感謝@保羅Lammertsma!我可以直接聲明android:layout_marginTop =「30dp」嗎?這30dp大小將所有設備相同的大小?如果不是直接聲明那麼我做的完美使用?? – user3467178

+0

[DP是與設備無關的像素](http://developer.android.com/training/multiscreen/screendensities.html#TaskUseDP),因此每個設備上的大小將是*相同的物理大小*。如果您希望在大型設備(如平板電腦)上擁有更大的利潤率,那麼我建議您使用資源限定符定義不同的維度;爲此[我建議閱讀本指南](http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources)。 –

0

步驟1.將所有的複選框爲LinearLayout中。

第2步:將所有複選框性能,

  android:layout_gravity = "left"