Почему изображение в относительной компоновке с кнопкой "fill_parent" скрыть внизу?

Я пытаюсь увеличить размер изображения в относительной компоновке. Сейчас его ширина и высота установлены на wrap_content, Когда я установил их fill_parentизображение увеличивается, но нажимает кнопку под дисплеем. Соответствующий XML ниже. Что я делаю неправильно?

Изменить: Спасибо за все ответы, но пока, если я установлю высоту изображения на fill_parent или же match_parent, он всегда простирается до нижней части дисплея, независимо от того, находится ли кнопка внутри или снаружи относительного расположения. Почему относительный макет игнорирует то, что под ним?

<LinearLayout>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/relativelayout"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/myImageView"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:src="@drawable/apple"
            android:alpha=".5"
            android:paddingBottom="0dp"
            android:adjustViewBounds="true" />
        <TextView
            android:id="@+id/myImageViewText"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="Sample"
            android:textColor="#000000"
            android:singleLine="true"
            android:layout_alignLeft="@+id/myImageView"
            android:layout_alignStart="@+id/myImageView"
            android:layout_alignParentTop="true" />


    </RelativeLayout>

    <Button
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/enterPluButton"
        android:background="#FFBD5C"
        android:textColor="#000000"
        android:text="Submit" />
</LinearLayout>

4 ответа

  1. Задавать android:layout_alignParentBottom="true" для кнопки.
  2. Задавать android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/enterPluButton" для вашего RelativeLayout
  3. Задавать android:layout_width="match_parent" android:layout_height="match_parent" для ImageView

RelativeLayout позиции View родственники друг друга. если это не имеет отношения к другому ребенку View он рассчитывает с родителем View какой RelativeLayout, Вот почему у вас это есть. Почему бы не обернуть LinearLayout в ScrollView или дать RelativeLayout фиксированный размер

Теперь я понимаю, что вы пытаетесь сделать. Попробуй это:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativelayout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">


    <ImageView
        android:id="@+id/myImageView"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_centerInParent="true"
        android:adjustViewBounds="true"
        android:alpha=".5"
        android:paddingBottom="0dp"
        android:src="@drawable/apple" />

    <TextView
        android:id="@+id/myImageViewText"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/myImageView"
        android:layout_alignParentTop="true"
        android:layout_alignStart="@+id/myImageView"
        android:gravity="center"
        android:singleLine="true"
        android:text="Sample"
        android:textColor="#000000" />

    <Button
        android:id="@+id/enterPluButton"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/myImageView"
        android:background="#FFBD5C"
        android:text="Submit"
        android:textColor="#000000" />

</RelativeLayout>

В RelativeLayouts представления располагаются относительно верхнего левого угла "ViewGroup". Чтобы заставить ImageView перестать скрывать кнопку или любое другое представление, добавьте атрибут layout_below.

<TextView
    android:layout_below="@+id/relativelayout"
    android:id="@+id/myImageViewText"
    android:layout_width="fill_parent"
    ...
/>

Кроме того, для ImageView не рекомендуется, если только вы не используете его в качестве фона, вы устанавливаете layout_height равным fill_parent или match_parent.

Вы получите желаемый результат, если поместите кнопку в относительное расположение и поместите ее под текстовым представлением.

Другие вопросы по тегам