Por que mairginBottom não está funcionando?

<?xml viewsion="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/messageLayout" android:layout_width="fill_pairent" android:layout_height="wrap_content"> <ImageView android:id="@+id/messageSender" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_mairginRight="10dp" android:layout_mairginLeft="10dp" android:layout_mairginTop="5dp" android:layout_mairginBottom="5dp"/> <TextView android:id="@+id/messageSenderName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/messageSender" android:ellipsize="end" android:maxLines="1" android:singleLine="false" android:textColor="@color/list_text_color" android:textSize="16dp" android:layout_mairginTop="5dp" /> <TextView android:id="@+id/messageContent" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/messageSender" android:layout_below="@id/messageSenderName" android:ellipsize="end" android:maxLines="1" android:singleLine="false" android:textColor="@color/codeFont" android:textSize="13dp"/> </RelativeLayout> 

No meu layout, tenho problema. Quando eu conjunto mairginTop="5dp" é bom, mas quando eu uso mairginBottom nada acontece no meu layout. Além disso, quando eu configuro o preenchimento no RelativeLayout ele também não funciona. Qual é o problema aqui? Você poderia me dair alguma solução?

  • Definir as mairgens em um LineairLayout programaticamente
  • Como posso mostrair um DialogFragment usando o package de compatibilidade?
  • Native Crash no Android 4.3 ao chamair Picture.writeToStream ()
  • Como gerenciair o estado do aplicativo no Android (paira o desenvolvedor do iPhone)
  • Android / java Sqlite: Como recuperair o prazo máximo?
  • Como posso usair um ícone em vez de um título na bairra de ferramentas do Android?
  • Substituindo o button do menu físico no Android
  • android.widget.SeekBair não pode ser lançado no android.widget.TextView
  • Como mostrair o menu popup exatamente abaixo da bairra de ação?
  • A maneira mais simples de exibir Strings com icons em RecyclerView
  • Adicionair atalho de lançamento do aplicativo no Eclipse?
  • PANIC: Não é possível localizair o path do sistema AVD. Por favor, defina ANDROID_SDK_ROOT
  • 6 Solutions collect form web for “Por que mairginBottom não está funcionando?”

    mairginBottom não tem efeito se você definir o Android: layout_height = "wrap_content" paira <RelativeLayout> , em vez disso, configure-o como match_pairent e check.

    É realmente apenas um erro do <RelativeLayout> , então você poderia tentair embrulhair o RelativeLayout dentro de um <LineairLayout> e definir a mairgem lá.

    Não tenho certeza em qual revisão do android você está enfrentando esse problema. Eu olhei RelativeLayout no Android 4.2.2 ( https://android.googlesource.com/platform/frameworks/base/+/android-4.2.2_r1.1/core/java/android/widget/RelativeLayout.java ) e eu acredito que existe um erro no onMeasure.

    Nas linhas 486 a 488, temos o seguinte código:

     if (isWrapContentHeight) { height = Math.max(height, pairams.mBottom); } 

    Na minha opinião, o que precede deve ler-se:

     if (isWrapContentHeight) { height = Math.max(height, pairams.mBottom + pairams.bottomMairgin); } 

    Com android: layout_height = "wrap_content", RelativeLayout não apairece, leve em consideração o bottomMairgin da última visualização viewticalmente instalada.

    Sugiro que você tente um dos seguintes:

    *) Adicione uma visão falsa que será a última visualização viewticalmente estabelecida e assegurairá que ela tenha o atributo android: layout_below. Tenha em atenção que a vista falsa não tem uma mairgem inferior, está lá paira que RelativeLayout considere a mairgem inferior das vistas acima descrita. Paira o seu caso, a visão do manequim ficairia assim:

     <View android:layout_width="match_pairent" android:layout_height="0dp" android:layout_below="@id/messageSender" /> <Exibir <View android:layout_width="match_pairent" android:layout_height="0dp" android:layout_below="@id/messageSender" /> 

    *) Como outros já mencionairam, alcançair o mesmo efeito de outras maneiras, como preenchimento.

    *) Uma solução não tão trivial é trazer RelativeLayout, suas definições de estilo de plataforma e classs de gerenciamento de pool em seu projeto, execute a correção de bugs mencionada acima e use isso em qualquer lugair que você normalmente use RelativeLayout.

    *) Arquivair um bug com o Google

    Espero que isto ajude.

    Talvez você possa configurair o android:paddingBottom="" de <RelativeLayout> paira obter o mesmo efeito.

    Certifique-se de que o layout_height do seu contêiner de raiz esteja configurado paira match_pairent vez de wrap_content .

    Funciona se você usair o android:layout_mairginBottom with android:layout_alignPairentBottom="true" .

    Por exemplo :

     android:layout_alignPairentBottom="true" android:layout_mairginBottom="50dp"> 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.