web-dev-qa-db-fra.com

Comment définir la position fixe du bouton d'action flottant au-dessus d'une très longue liste dans Android?

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:

enter image description here

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

enter image description here

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

enter image description here

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?

12
Wai Yan Hein

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"
26
ajantha

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>
4
sree

Ne placez pas le bouton dans une disposition linéaire.

Utilisation

FrameLayout pour que vous puissiez placer des vues au-dessus des autres

0
Gaurav