无法在RelativeLayout中将元素与toStartOf对齐

时间:2016-02-08 15:44:10

标签: android android-relativelayout

基本上我有一个NumberPicker对齐的右边,一个ImageView对齐的左上角,以及LinearLayout容器中的两个按钮,我试图在拾取器的左边和底部对齐父母的。没有成功。容器只是通过重叠选择器来占据整个空间。

<RelativeLayout
    android:id="@+id/cell_1"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:animateLayoutChanges="true"
    android:background="@color/blue_light"
    android:padding="@dimen/spacing_tiny">

    <NumberPicker
        android:id="@+id/np_1"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_alignParentEnd="true"
        android:layout_margin="@dimen/spacing_tiny"
        android:visibility="visible" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_margin="@dimen/spacing_tiny" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_toStartOf="@+id/np_1"
        android:orientation="vertical"
        android:visibility="visible">

        <Button
            style="@style/LargeHoloButton.SecondaryButton"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_margin="@dimen/spacing_tiny"
            android:layout_weight="1"
            android:minWidth="0dp"
            android:text="@string/button.updown" />

        <Button
            style="@style/LargeHoloButton.SecondaryButton"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_margin="@dimen/spacing_tiny"
            android:layout_weight="1"
            android:minWidth="0dp"
            android:text="@string/button.leftright" />

    </LinearLayout>
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

从API级别17开始,您无法使用layout_toStartOf。你应该使用

android:layout_toLeftOf="@+id/np_1"

再次从API 17中,您无法使用'layout_alignParentEnd'。而是使用

android:layout_alignParentRight="true"

您的relativelayout宽度设置为'0dp'时出错。把它match_ parent

正确的代码如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cell_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:animateLayoutChanges="true"
android:background="#000099"
android:padding="8dp">

<NumberPicker
    android:id="@+id/np_1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_alignParentRight="true"
    android:layout_margin="8dp"
    android:visibility="visible" />

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:src="@mipmap/ic_launcher"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="8dp"
    android:layout_marginTop="8dp"
    android:layout_above="@+id/linearLayout"
    android:layout_toLeftOf="@+id/np_1"
    android:layout_toStartOf="@+id/np_1" />

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_toLeftOf="@+id/np_1"
    android:orientation="vertical"
    android:visibility="visible"
    android:id="@+id/linearLayout">

    <Button

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="8dp"
        android:layout_weight="1"
        android:minWidth="0dp"
        android:text="assafsasaf" />

    <Button

        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_margin="8dp"
        android:layout_weight="1"
        android:minWidth="0dp"
        android:text="sadsadsadsa" />

</LinearLayout>
</RelativeLayout>

它看起来像下面的图像(设置颜色和填充为你的)

http://i.stack.imgur.com/ecKF6.png