2014-12-09 85 views
0

你好我有一個複選框,它在Android 4.3上工作完美的罰款問題,但不工作在2.2版本這裏是圖片。問題在於複選框元素正在被包裝,並在舊版本中左對齊。對齊舊的Android版本

working 4.3 version

problematic 2.2 version

The Checkbox is not aligned to center in previous versions and is shifted

這裏是代碼

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="start" 
    android:layoutgravity="start" > 

    <ImageView 
     android:id="@+id/layoutCar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerInParent="true" 
     android:contentDescription="@string/car" 
     android:padding="16dp" 
     android:src="@drawable/damage_car" /> 

    <CheckBox 
     android:id="@+id/CheckBoxRightFront" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignEnd="@+id/layoutCar" 
     android:layout_alignRight="@+id/layoutCar" 
     android:layout_below="@+id/CheckBoxFront" 
     android:layout_centerInParent="true" 
     android:layout_marginTop="18dp" 
     android:button="@drawable/customcheckbox" 
     android:gravity="center" 
     android:paddingBottom="16dp" 
     android:paddingTop="16dp" /> 

    <CheckBox 
     android:id="@+id/CheckBoxLeftFront" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/CheckBoxRightFront" 
     android:layout_alignBottom="@+id/CheckBoxRightFront" 
     android:layout_alignEnd="@+id/CheckBoxLeftBD" 
     android:layout_alignLeft="@+id/layoutCar" 
     android:layout_alignRight="@+id/CheckBoxLeftBD" 
     android:layout_alignStart="@+id/layoutCar" 
     android:button="@drawable/customcheckbox" 
     android:gravity="center" 
     android:padding="16dp" /> 

    <CheckBox 
     android:id="@+id/CheckBoxBumper" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/layoutCar" 
     android:layout_alignLeft="@+id/layoutCar" 
     android:layout_alignStart="@+id/layoutCar" 
     android:button="@drawable/customcheckbox" 
     android:gravity="center" /> 

    <CheckBox 
     android:id="@+id/CheckBoxBack" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/layoutCar" 
     android:layout_alignLeft="@+id/CheckBoxFront" 
     android:layout_alignStart="@+id/CheckBoxFront" 
     android:button="@drawable/customcheckbox" 
     android:gravity="center" 
     android:paddingBottom="16dp" 
     android:paddingTop="16dp" /> 

    <CheckBox 
     android:id="@+id/CheckBoxRoof" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/CheckBoxBack" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true" 
     android:layout_marginBottom="70dp" 
     android:button="@drawable/customcheckbox" 
     android:gravity="center_vertical|center_horizontal" /> 

    <CheckBox 
     android:id="@+id/CheckBoxFront" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerInParent="true" 
     android:layout_marginTop="12dp" 
     android:button="@drawable/customcheckbox" /> 

    <CheckBox 
     android:id="@+id/CheckBoxLeftFD" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/CheckBoxRoof" 
     android:layout_alignLeft="@+id/layoutCar" 
     android:layout_alignStart="@+id/layoutCar" 
     android:button="@drawable/customcheckbox" 
     android:gravity="center" 
     android:paddingBottom="16dp" 
     android:paddingTop="16dp" /> 

    <CheckBox 
     android:id="@+id/CheckBoxLeftBD" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/CheckBoxBack" 
     android:layout_alignLeft="@+id/layoutCar" 
     android:layout_alignStart="@+id/layoutCar" 
     android:layout_toEndOf="@+id/CheckBoxBumper" 
     android:layout_toRightOf="@+id/CheckBoxBumper" 
     android:button="@drawable/customcheckbox" 
     android:paddingBottom="16dp" 
     android:paddingTop="16dp" /> 

    <CheckBox 
     android:id="@+id/CheckBoxRightFD" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/CheckBoxRoof" 
     android:layout_alignEnd="@+id/layoutCar" 
     android:layout_alignLeft="@+id/CheckBoxRightBD" 
     android:layout_alignRight="@+id/layoutCar" 
     android:layout_alignStart="@+id/CheckBoxRightBD" 
     android:button="@drawable/customcheckbox" 
     android:padding="16dp" /> 

    <CheckBox 
     android:id="@+id/CheckBoxRightBD" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/CheckBoxLeftBD" 
     android:layout_alignBottom="@+id/CheckBoxLeftBD" 
     android:layout_alignEnd="@+id/layoutCar" 
     android:layout_alignRight="@+id/layoutCar" 
     android:button="@drawable/customcheckbox" 
     android:paddingBottom="16dp" 
     android:paddingTop="16dp" /> 

</RelativeLayout> 
+0

? – 2014-12-09 12:51:13

+2

這是一個主題填充問題 – 2014-12-09 12:51:29

+1

完全無關:但爲什麼支持2.2?至少增加到API 10(2.3.3) – WarrenFaith 2014-12-09 12:53:05

回答

0

我想我找到了在最後這個問題的答案是對象的不同包裝上不同的版本,所以我所做的就是通過編寫適合的寬度來削減額外的包裝圖像大小和覆蓋系統默認的包裝方案

android:layout_width="[Image-width-size]dp" 

在我的情況下,你可以分享屏幕截圖是

android:layout_width="20dp"