Почему изображение в относительной компоновке с кнопкой "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 ответа
- Задавать
android:layout_alignParentBottom="true"
для кнопки. - Задавать
android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@+id/enterPluButton"
для вашего RelativeLayout - Задавать
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.
Вы получите желаемый результат, если поместите кнопку в относительное расположение и поместите ее под текстовым представлением.