3

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

我使用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>

现在我明白了:

设备布局

我尝试根据 mdpi/hdpi/xhdpi 设置 minWidth,但该按钮从不会在每个设备上居中。fill_parent/wrap_content 不会导致任何变化,也会在布局内移动按钮。

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

4

1 回答 1

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>
于 2013-01-23T10:48:35.310 回答