Кнопка в относительном макете не зависит от настройки полей макета - PullRequest
0 голосов
/ 08 июня 2011

Пользовательское поле Dialog с RelativeLayout содержит виджет Button, который не будет изменять свои поля независимо от направления. Вот XML:


<?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:orientation="horizontal" android:background="#99000000">
    <TextView android:id="@+id/dialogtitle" android:layout_width="fill_parent"
         android:layout_height="wrap_content" android:text="Some text" />
    <TextView android:id="@+id/dialogtext" android:layout_width="300dp"
        android:layout_height="wrap_content" android:textSize="15dp"
        android:layout_alignParentLeft="true" android:layout_below="@id/dialogtitle"
        android:paddingLeft="8dp" />
    <Button android:id="@+id/dialogbuttoninfo" android:layout_width="80dp"
        android:layout_height="wrap_content" android:text="Doesn't care about margins"
        android:layout_alignParentRight="true" android:layout_marginLeft="128dp" />
</RelativeLayout>

Заполнение работает, но только перемещает текст внутри кнопки. Есть предложения?

Ответы [ 2 ]

1 голос
/ 09 июня 2011

Возможно, вам придется выровнять левую часть кнопки относительно чего-либо, прежде чем поле будет иметь реальное значение.

1 голос
/ 09 июня 2011

Это кажется дерьмовым, но вы пытались вместо этого поместить все это в LinearLayout?или возможно удаление android:orientation="horizontal".Я не думаю, что RelativeLayout заботится об ориентации из того, что я видел.Также я думаю, но, возможно, ошибаюсь, что если вы сделаете LinearLayout, то вам также не нужно будет иметь android:layout_alignParentLeft="true".

После очистки немного (извините, но это так сложночитать, когда он сжат, как это было в вопросе) вы также не указали, где последние TextView, dialogbuttoninfo должны были быть относительно всего остального, я думаю, вы должны сделать это, чтобы Relative layouts вел себяправильно, у меня были некоторые странные вещи.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="#99000000">
    <TextView
        android:id="@+id/dialogtitle"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Some text" />
    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">
        <TextView
            android:id="@+id/dialogtext"
            android:layout_width="300dp"
            android:layout_height="wrap_content"
            android:textSize="15dp"
            android:layout_alignParentLeft="true"
            android:paddingLeft="8dp" />
        <Button
            android:id="@+id/dialogbuttoninfo"
            android:layout_width="80dp"
            android:layout_height="wrap_content"
            android:text="Doesn't care about margins"
            android:layout_alignParentRight="true"
            android:layout_marginLeft="128dp" />
    </LinearLayout>
</LinearLayout>
...