0

J'ai une disposition Relative principale dans laquelle il y a un ListView et un autre LinearLayout Horizontal que je veux placer au bas de l'écran. Lorsque les éléments de la vue de liste remplissent l'écran, ils sont masqués sous la disposition linéaire horizontale. Comment limiter le ListView pour prendre l'espace uniquement jusqu'à la disposition Horozontal Linéaire et arrêter le contenu de la vue de liste de se cacher.ListView dans RelativeLayout remplit toute la hauteur

Nous vous remercions de votre aide et de vos suggestions.

Voici ma mise en page et une capture d'écran de son apparence.

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_chat_window" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.raoburugula.speech_soft_ivr.ChatWindow"> 
      <ListView 
       android:id="@+id/lvMessages" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:divider="@android:color/transparent" 
       android:dividerHeight="5dp" 
       /> 

    <LinearLayout 
     android:id="@+id/llAction" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:layout_alignParentBottom="true" 
     android:weightSum="5" 
     android:visibility="invisible"> 
     <EditText 
      android:id="@+id/etMessage" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="4"/> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/btnSendMessage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:src="@drawable/ic_send" 
      android:tint="@android:color/white" 
      android:onClick="sendMessage" 
      /> 
    </LinearLayout> 
</RelativeLayout> 

enter image description here

Répondre

0

Je supprimerait la ligne android:visibility="invisible" du LinearLayout. et vérifiez comment cela fonctionne. J'ai aussi une fois construit ma mise en page du bas vers le haut pour me permettre de placer 2 boutons en bas de l'écran, avec le recul dont je n'avais probablement pas besoin. Je n'ai pas été en mesure de commenter votre post, j'ai donc fait une réponse à la place.

Avez-vous essayé un bouton normal à la place du FAB (FloatingActionButton)? Un FAB peut avoir des propriétés qui le rendent visible et en bas à droite, sans tenir compte des attributs de ses parents.

+0

J'ai besoin de l'attribut Visibilité car je contrôle cela et ce problème n'a rien à voir avec ce que je crois. Et aussi comment le FAB a-t-il un impact sur cela? Cela concerne la disposition relative et comment placer des widgets à l'intérieur de celle-ci. – BRDroid

+0

Désolé pour ça je l'ai mal lu car la linearlayout ne s'affichait pas, ce gars a posé une question similaire et ils ont recommandé de créer une mise en page pour les boutons et la listview dans la mise en page racine https://stackoverflow.com/questions/11403212/ layout-for-listview-at-top-and-buttons-in-bottom – BossmanT

+0

Alors enveloppez le ListView dans un RelativeLayout et faites que cette mise en page s'aligne au sommet du parent et au sommet du LinearLayout contenant votre EditText et le bouton – BossmanT

0

Vous avez fait la disposition linéaire horizontale aligner le bas du parent, oui;

et vous devez faire votre listView au-dessus de la disposition linéaire horizontale.