XML- Android CheckBox小部件

时间:2014-03-30 13:16:47

标签: android xml

非常感谢。我是android的开始。我正在尝试一个CheckBox按钮。我做了一个小项目。看我的项目照片:

1.为什么CheckBox的列表不是同一个位置,它就像一个随机的?

检查我的Xml代码:

2.我使用的是android:layout_marginTop =“30dp”,android:textSize =“20dp”,这是声明中的完美规则吗?它将同样支持所有设备?

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

再次感谢。

3 个答案:

答案 0 :(得分:1)

  

1.为什么CheckBox的列表不是同一个位置,它就像一个随机的?

您将CheckBoxes置于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>
然后,CheckBoxes会在一个包裹宽度的居中框内左对齐显示。

  

2.我正在使用android:layout_marginTop =&#34; 30dp&#34;,android:textSize =&#34; 20dp&#34;,它是声明中的完美规则吗?它会支持所有设备吗?

我不确定你对这个问题的意思,但有两个可能的问题:

  1. 如果布局没有滚动,布局可能会扩展到屏幕较小的设备的边界之外。一个简单的解决方案可能是将整个布局包装在ScrollView中。

  2. 建议不要在文本中使用DP,因为用户可能已设置文本缩放的首选项:android:textSize="20sp"

    或者,您可能需要使用Android预设的TextAppearance之一,例如:android:textAppearance="?android:attr/textAppearanceLarge"

答案 1 :(得分:0)

步骤1.将所有复选框放入LinearLayout。

步骤2.设置所有复选框属性,

          android:layout_gravity = "left"

答案 2 :(得分:0)

由于所有Checkbox的文本长度不同。将值放在文本视图的最大长度字段中。像

  <?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>