Je développe une application Android qui fonctionne principalement avec listview
. Mais je rencontre un problème avec Floating Action Button
ensemble avec Long ListView
. Mon problème est comme ci-dessous.
Lorsque la vue de liste ne comporte que quelques éléments. Floating item
peut être vu.
Voici la capture d'écran:
Comme vous pouvez le voir ci-dessus, Floating Action Button
est toujours visible. Mais quand ListView
a autant d'éléments et devient excessif à l'écran, Floating Action Button
n'est pas visible.
Voici la capture d'écran de Long Listview
Pour la deuxième capture d'écran, il ne peut pas être scrolled down
plus.
Ce que je veux réaliser, c'est que je veux que le bas flottant soit toujours en bas à droite de l'écran au-dessus de Listview
. Comme position fixe dans HTML
et CSS
.
Je voudrais Floating Action Button
toujours là, quelle que soit la hauteur du Listview
Ceci est mon fichier de mise en page
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical" Android:layout_width="match_parent"
Android:layout_height="match_parent">
<ListView
Android:dividerHeight="@dimen/list_item_divider_height"
Android:padding="@dimen/list_padding"
Android:divider="@color/whitesmoke"
Android:id="@+id/listview_podcast_list"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"></ListView>
<TextView
Android:textSize="17dp"
Android:textStyle="bold"
Android:textColor="@color/black"
Android:textAlignment="center"
Android:id="@+id/tf_no_records"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/stop_podcast_button"
Android:background="@color/colorPrimary"
Android:src="@Android:drawable/ic_dialog_email"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"/>
</LinearLayout>
Comment puis-je corriger mon code pour y parvenir?
Essayez d'utiliser RelativeLayout au lieu de LinearLayout. Et pour FloatingActionButton, ajoutez un attribut comme celui-ci,
Android:layout_alignParentBottom="true"
Android:layout_alignParentEnd="true"
Android:layout_alignParentRight="true"
Android:layout_gravity="end|bottom"
Essayez d'utiliser avec CoordinatorLayout
<?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout 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:layout_width="match_parent"
Android:layout_height="match_parent"
Android:fitsSystemWindows="true"
tools:context="listview.anubavam.com.listview.MainActivity">
<Android.support.design.widget.AppBarLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/AppTheme.AppBarOverlay">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" >
</Android.support.v7.widget.Toolbar>
</Android.support.design.widget.AppBarLayout>
<include layout="@layout/content_main" />
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|end"
Android:layout_margin="@dimen/fab_margin"
Android:src="@Android:drawable/ic_menu_camera" />
</Android.support.design.widget.CoordinatorLayout>
Ne placez pas le bouton dans une disposition linéaire.
Utilisation
FrameLayout pour que vous puissiez placer des vues au-dessus des autres