Android复选框 - 背景+按钮布局 - 错误的大小

时间:2013-01-23 10:29:40

标签: android layout checkbox shape

我想我在其中一个布局中没有看到错误。我想显示一个复选框和它周围的边框。

我使用Android Holo Colors Generator

生成了图片

我尝试在复选框中添加一个形状,这在Nexus 4上运行良好,但在任何其他设备上都没有显示按钮,所以我添加了一个虚拟布局:

布局:

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginRight="5sp"
    android:layout_marginTop="3sp"
    android:background="@drawable/shape_button" >

    <CheckBox
        android:id="@+id/check"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:button="@drawable/btn_radio_holo_dark_hm" />
</LinearLayout>

形状:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="@android:color/transparent"/>

    <stroke
        android:width="1px"
        android:color="@color/gray" />

    <corners
        android:bottomLeftRadius="5sp"
        android:bottomRightRadius="5sp"
        android:topLeftRadius="5sp"
        android:topRightRadius="5sp" />

</shape>

现在我明白了:

Layout on Devices

我尝试根据mdpi / hdpi / xhdpi设置minWidth,但按钮永远不会在每个设备上居中。 fill_parent / wrap_content不会导致任何更改,也会移动布局中的按钮。

关于这里出了什么问题的任何建议?

1 个答案:

答案 0 :(得分:4)

将外部布局更改为RelativeLayout,并为复选框

设置centerInParent = true
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5sp"
android:layout_marginTop="3sp"
android:background="@drawable/shape_button" 
android:padding="2sp">

<CheckBox
    android:id="@+id/check"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:button="@drawable/btn_radio_holo_dark_hm" 
    android:layout_centerInParent="true/>
</RelativeLayout>