我正在创建一个Android应用程序,它在android 4.2+上运行得很好 但是当我试图在Android 4.1及更早版本上运行它时会得到一个奇怪的布局 我在互联网上寻找它,但无法找到解决方案。 这个问题似乎只出现在Android 4.1.2及更低版本上,但在android 4.2.2上它的效果很好。 有什么想法吗?
截图: Android 4.2 +
Android 4.1及更低版本
我的布局xml代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/back"
android:weightSum="1">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="200dp"
android:id="@+id/checkboxer"
android:layout_below="@+id/textview2"
android:layout_alignRight="@+id/textview"
android:visibility="invisible">
<CheckBox
android:layout_width="363dp"
android:layout_height="50dp"
android:text="Home"
android:id="@+id/home"
android:layout_gravity="center_vertical"
android:layout_below="@+id/mobile"
android:visibility="invisible"
android:textSize="40dp"
android:textStyle="bold" />
<CheckBox
android:layout_width="fill_parent"
android:layout_height="50dp"
android:text="Mobile"
android:id="@+id/mobile"
android:visibility="invisible"
android:textSize="40dp"
android:textStyle="bold" />
<CheckBox
android:layout_width="fill_parent"
android:layout_height="50dp"
android:text="work"
android:id="@+id/work"
android:layout_alignParentEnd="false"
android:layout_below="@+id/home"
android:visibility="invisible"
android:textStyle="bold"
android:textSize="40dp" />
<CheckBox
android:layout_width="fill_parent"
android:layout_height="50dp"
android:text="other"
android:id="@+id/other"
android:layout_below="@+id/work"
android:visibility="invisible"
android:textSize="40dp"
android:textStyle="bold" />
<WebView
android:layout_width="fill_parent"
android:layout_height="200dp"
android:id="@+id/webView"
android:visibility="invisible"
android:background="@drawable/trans"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true" />
</RelativeLayout>
<TextView
android:layout_width="300dp"
android:layout_height="100dp"
android:id="@+id/textview"
android:background="#5ea2ff"
android:textSize="20dp"
android:textColor="#FFFFFF"
android:autoText="true"
android:visibility="invisible"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true" />
<TextView
android:layout_width="300dp"
android:layout_height="100dp"
android:id="@+id/textview2"
android:background="#58ff57"
android:textSize="20dp"
android:textColor="#FFFFFF"
android:autoText="true"
android:visibility="invisible"
android:layout_below="@+id/textview"
android:layout_alignParentStart="true"
android:focusable="false"
android:focusableInTouchMode="false" />
<ImageButton
android:layout_width="98dp"
android:layout_height="102dp"
android:id="@+id/imageButton"
android:layout_gravity="right"
android:layout_weight="0.19"
android:background="@drawable/ic_launcher"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:clickable="false"
android:focusable="false"
android:layout_alignTop="@+id/imageButton2"/>
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/editText"
android:layout_alignParentBottom="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/imageButton"
android:text="@string/edit"
android:clickable="true"
android:autoText="true"
android:enabled="false"
android:editable="false"
android:background="@drawable/trans"
android:textColor="#ff0008" />
<ImageButton
android:layout_width="98dp"
android:layout_height="98dp"
android:id="@+id/imageButton2"
android:clickable="false"
android:focusable="false"
android:background="@drawable/enter"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:visibility="invisible"
android:layout_alignParentRight="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Text Input"
android:id="@+id/button"
android:layout_above="@+id/editText"
android:layout_alignParentStart="true"
android:background="#a3ffbb"
android:layout_toLeftOf="@+id/imageButton"/>
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="40dp"
android:layout_height="40dp"
android:id="@+id/menubutton"
android:layout_alignParentTop="false"
android:layout_alignParentLeft="false"
android:background="@drawable/ic_drawer" />
</RelativeLayout>
答案 0 :(得分:2)
您使用的是layout_alignParentStart
和layout_alignParentEnd
,直到Android 4.2(API 17)才引入这些属性。您需要坚持使用旧的顶部,底部,左侧和右侧对齐父属性或找到另一个锚点。
答案 1 :(得分:0)
仅供记录,不仅 layout_alignParentStart 或 layout_alignParentEnd ,所有开始/结束布局参数在Android上崩溃4.1.2设备( marginStart / marginEnd , paddingStart / paddingEnd ...)。 只需更改左 / 正确即可,但忘记了RTL兼容性
答案 2 :(得分:0)
我在app x的ImageButton中使用了这个属性“layout_alignParentStart”。并且发现它在大多数设备上运行良好,但在oppo x907上崩溃。但根据http://developer.android.com/training/basics/supporting-devices/platforms.html,它不会导致崩溃。所以我认为有时是因为某些特殊设备没有良好的兼容性。