Почему FOOBARZ выкладывается полностью внизу, когда никаких элементов нет, layout_height="fill_parent"
другими словами, все элементы имеют wrap_content для высоты?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/feed_u"
android:layout_width="50dip"
android:layout_height="50dip"
android:layout_marginLeft="5dip"
android:scaleType="centerCrop"
android:drawableTop="@android:drawable/presence_online"
android:text="U" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/feed_u">
<ImageView
android:id="@+id/feed_h"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/btn_minus" />
<ImageView
android:id="@+id/feed_ha"
android:layout_toLeftOf="@id/feed_h"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/btn_plus" />
<TextView
android:id="@+id/feed_t"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Title">
</TextView>
<TextView
android:id="@+id/feed_a"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Band"
android:layout_below="@id/feed_t">
</TextView>
<TextView
android:id="@+id/feed_s"
android:layout_below="@id/feed_a"
android:text="S"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
</TextView>
<TextView
android:id="@+id/feed_tm"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="FOOBARZ"
android:layout_height="wrap_content"
android:layout_width="wrap_content">
</TextView>
</RelativeLayout>
</RelativeLayout>
android
android-layout
hunterp
источник
источник
hierarchyviewer
перспективу Hierarchy View в Eclipse, чтобы определить, где что-то идет не так: developer.android.com/guide/developing/debugging/…Ответы:
Из
RelativeLayout
документа:Документация класса
Это как раз ваш случай. RelativeLayout не может этого сделать.
источник
android:layout_height="200dp"
это позволило бы вам использоватьandroid:layout_alignParentBottom="true"
<ImageView>
.layout_height
изmatch_parent
Для тех, кто ищет решение этой проблемы, как я, вы можете использовать
FrameLayout
вместоRelativeLayout
.Затем вы можете установить гравитацию намеченного объекта в правом нижнем углу, как показано ниже.
источник
Вы установили для RelativeLayout значение
"wrap_content"
и TextViewandroid:layout_alignParentBottom="true"
, поэтому он автоматически пытается растянуть RelativeLayout до самого низа. Не используйте такие зависимости с Relative Layout, так как они могут считаться «циклическими зависимостями».Из документов для RelativeLayout :
Попробуйте выровнять свой TextView с чем-то другим, кроме родительского RelativeLayout, но остерегайтесь и этой проблемы:
круговые зависимости, нужна помощь с точным кодом
Как вариант, попробуйте добавить более сложные внутренние макеты.
источник
Хорошие ответы. Теперь, если у вас нет
layout_alignParentBottom="true"
и по-прежнемуandroid:background="@drawable/bkgnd"
возникает эта проблема, следите за тем, где bkgnd является важным.источник
Я не уверен, почему чистый и очевидный способ сделать это еще не опубликован. Это эффективное решение работает для любого View MyView с известной высотой.
Оберните
RelativeLayout
высотуwrap_content
в FrameLayout:Просто обратите внимание, что представление в нижней части FrameLayout будет поверх вашего
RelativeLayout
контента, поэтому вам нужно будет добавить отступ в нижней части этого макета, чтобы разместить его. Если вы хотите, чтобы это представление было переменной высотой, вы можете либо подклассифицировать FrameLayout, чтобы добавить отступ в коде на основе измеренной высоты представления, либо просто измените FrameLayout на вертикальный LinearLayout, если вы не беспокоитесь о производительности, то есть это не список элемент, или представления относительно легкие.источник
Не используйте свойства типа alight_Parent с дочерними представлениями
Вы можете использовать макет кадра вместо RelativeLayout с соответствующей гравитацией
источник