Por que FOOBARZ é colocado na parte inferior, quando nenhum elemento está layout_height="fill_parent"
em outras palavras, todos os elementos são wrap_content para height?
<?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
fonte
fonte
hierarchyviewer
ou a perspectiva Hierarchy View no Eclipse para determinar onde as coisas estão dando errado: developer.android.com/guide/developing/debugging/…Respostas:
Do
RelativeLayout
documento:Documentação de classe
Qual é exatamente o seu caso. RelativeLayout não pode fazer isso.
fonte
android:layout_height="200dp"
isso permitiria que você usasseandroid:layout_alignParentBottom="true"
<ImageView>
que está por trás dele.layout_height
dosmatch_parent
Para quem procura uma solução para isso, como eu, você pode usar em
FrameLayout
vez deRelativeLayout
.Em seguida, você pode definir a gravidade do objeto pretendido para o canto inferior direito, como abaixo
fonte
Você definiu o RelativeLayout como
"wrap_content"
e o TextView comoandroid:layout_alignParentBottom="true"
, para tentar automaticamente esticar o RelativeLayout para a parte inferior. Não use essas dependências com o Relative Layout, pois pode contar como "dependências circulares".Dos documentos para RelativeLayout :
Tente alinhar o TextView a algo diferente do RelativeLayout pai, mas observe também este problema:
Dependências circulares, preciso de ajuda com o código exato
Como alternativa, tente adicionar layouts internos mais sofisticados.
fonte
Boas respostas. Agora, se você ainda não tem
layout_alignParentBottom="true"
esse problema, observeandroid:background="@drawable/bkgnd"
onde o bkgnd é um grande problema.fonte
Não sei por que a maneira limpa e óbvia de fazer isso ainda não foi publicada. Essa solução de desempenho funciona para qualquer View MyView com uma altura conhecida.
Envolva o seu
RelativeLayout
com a alturawrap_content
em um FrameLayout:Observe que a visualização na parte inferior do FrameLayout estará na parte superior do seu
RelativeLayout
conteúdo; portanto, você precisará adicionar preenchimento à parte inferior desse layout para acomodá-lo. Se você deseja que essa exibição tenha altura variável, é possível incluir a subclasse FrameLayout para adicionar preenchimento no código com base na altura medida da vista, ou simplesmente alterar o FrameLayout para vertical LinearLayout se você não estiver preocupado com o desempenho, ou seja, não é uma lista. item ou as visualizações são relativamente leves.fonte
Não use propriedades do tipo alight_Parent com as visualizações filho
Você pode usar o layout do quadro em vez do RelativeLayout com a respectiva gravidade
fonte