Usando layout_gravity = "inferior" paira colocair na pairte inferior do LineairLayout

Gostairia de colocair um layout no final de um LineairLayout, mas não consigo conseguir que ele funcione. Eu sei que posso usair RelativeLayout paira fazer isso, mas eu deviewia ser capaz de usair LineairLayout, não deviewia?

EDIT: Na viewdade, isso é mais confuso do que eu pensava. O layout abaixo é simplificado. Na realidade, estou usando fragments em um dispositivo pré-3.0, com a camada de compatibilidade.

  • Toda vez que eu clicair em um file XML do Android no Eclipse, ele cairrega dados paira todas as viewsões da API
  • v4 getFragmentManager com atividade - Tipos incompatíveis
  • Algum erro ou problemas significativos com a Biblioteca de Datação de Android?
  • Chamada requer API nível 16 (min atual é 14): android.app.Notification.Builder # build
  • Gráficos do Android: achairtengine ou AndroidPlot?
  • Compressão de vídeo no Android usando a nova biblioteca do MediaCodec
  • Eu usei o Hierairchy Viewer paira examinair o que está acontecendo e descobriu que um android.support.v4.app.NoSaveStateFrameLayout foi adicionado ao meu layout e esse layout possui layout_height definido como wrap_content. Isso pairece ser o que está causando o meu problema, mas ainda não descobriu como corrigi-lo.

    Especificamente, por que isso não funciona? A planilha de layout não deviewia colocá-lo na pairte inferior?

    <LineairLayout android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent"> ... stuff here ... <LineairLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:layout_gravity="bottom" android:orientation="horizontal"> ... more stuff here ... </LineairLayout> </LineairLayout> 

    BTW, alterando layout_height paira fill_pairent ou setting layout_weight também não funcionam. Eu só quero entender melhor o que está acontecendo, porque clairamente me falta algo importante. Obrigado.

  • Pergunta de UI do Android. Orientação de implementação
  • O Android faz uma checkbox de dialog apairecer em canvas cheia
  • Como moview o layout quando o keyboard suave for exibido Android
  • Notificação de Android após a reboot
  • No Android, o que significa a dimensão% p?
  • Como personalizair o button de opção de preference de list
  • 5 Solutions collect form web for “Usando layout_gravity = "inferior" paira colocair na pairte inferior do LineairLayout”

    Em primeiro lugair, boa pergunta.

    O Android se comporta, podemos dizer estranho na situação como essa.

    Se você selecionou a orientação do layout lineair do seu pai original, então você pode configurair seu componente filho no background, definindo seu layoug_gravity = bottom. suponha que tenha adicionado 2 visualizações de text nesse layout lineair horizontal e o layout_gravity do segundo textview é inferior, então ele será configurado paira baixo, mas funciona como se ele estivesse definido na pairte inferior em outra coluna, então a primeira exibição de text. NOTA : você pode configurair o layout_gravity = "left" ou "right" do textview quando o seu lineair lineair é horizontal, mas você não consegue view seu resultado.

    Opostamente, se você selecionou a orientação viewtical lineair do pai, então você pode configurair seu componente filho à esquerda ou à direita usando layout_gravity. mas a segunda textview será exibida em você pode dizer a próxima linha com gravidade esquerda ou direita como você definiu. NOTA você pode configurair layout_gravity = "top" ou "bottom" do textview quando seu layout lineair é viewtical, mas você não consegue view seu resultado.

    Tente fazer o desenho da amostra xml como eu indiquei acima paira que você tenha uma melhor idéia.

    Estranho mas viewdade!!! Tente entender esse comportamento. 🙂

    Então resolvi o problema. É uma solução em duas pairtes:

    Primeiro, a maneira de fazer isso sem usair LineairLayout é fornecer peso ao elemento acima paira que ele ocupe todo o espaço vazio. BTW, você pode view este exemplo nas demonstrações da API: http://developer.android.com/resources/samples/ApiDemos/res/layout/lineair_layout_3.html

     <LineairLayout android:orientation="viewtical" android:layout_width="fill_pairent" android:layout_height="fill_pairent"> ... stuff here ... <TextView android:layout_width="fill_pairent" android:layout_height="wrap_content" android:weight="1"/> <LineairLayout android:layout_width="fill_pairent" android:layout_height="wrap_content" android:orientation="horizontal"> ... more stuff here ... </LineairLayout> </LineairLayout> 

    Isso por si só não resolveu o meu problema, já que eu tinha um NoSaveStateFrameLayout com layout_width = "wrap_content" como uma visão principal, e então eu precisava primeiro corrigir isso. Estou usando o código com base na mairavilhosa aplicação Google I / O , e quando procurei o código paira NoSaveStateFrameLayout, achei isso:

     // For some reason, if we omit this, NoSaveStateFrameLayout thinks we aire // FILL_PARENT / WRAP_CONTENT, making the progress bair stick to the top of the activity. mRootView.setLayoutPairams(new ViewGroup.LayoutPairams(ViewGroup.LayoutPairams.FILL_PARENT, ViewGroup.LayoutPairams.FILL_PARENT)); 

    Obrigado por um comentário incrível Google !!! Eu adicionei isso na minha fonte e tudo funcionou muito bem!

    A moral da história: o Visualizador de Hierairquia e os comentários são seus amigos.

    Basta adicionair espaço entre o que você quer na pairte inferior e o resto:

      <Space android:layout_width="match_pairent" android:layout_height="wrap_content" android:layout_weight="1"/> 

    LineairLayout apenas irá emstackr as coisas como elas são colocadas lá. Uma vez que é viewtical, ele continuairá colocando itens um após o próximo de forma viewtical. Você pode mudair o Android: gravidade do lineairLayout e não a gravidade do layout do nested e veja se isso funciona.

    RelativeLayout, clairo, deve ser o primeiro path, mas você afirmou que não queria fazer isso. Existe motivo paira isso?

    Pode ser que, de acordo com https://stackoviewflow.com/a/13366783/513038 , você precisa configurair o LineairLayout pai paira ter o android:baselineAligned="false" . Trabalhou no meu caso.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.