3

レイアウトの 1 つにエラーが表示されていないと思います。チェックボックスとその周りの境界線を表示したい。

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 に答える