web-dev-qa-db-ja.com

Androidの非常に長いリストビューの上にフローティングアクションボタンの固定位置を設定するにはどうすればよいですか?

主にlistviewで動作するAndroidアプリを開発しています。しかし、Floating Action ButtonLong ListViewと一緒に使用すると問題が発生します。私の問題は以下のように。

リストビューにいくつかの項目しかない場合。 Floating itemが表示されます。

これはスクリーンショットです:

enter image description here

上記のとおり、Floating Action Buttonは引き続き表示されますが、ListViewに非常に多くのアイテムがあり、画面に対して過剰になると、Floating Action Buttonは表示されません。

これはLong Listviewのスクリーンショットです

enter image description here

2番目のスクリーンショットでは、scrolled downにすることはできません。

私が達成したいのは、Listviewの上の画面の右下に常にフローティングボトムを配置することです。 HTMLおよびCSSの固定位置と同様。

Listviewの高さに関係なく、常にFloating Action Buttonが欲しい

enter image description here

これは私のレイアウトファイルです

<?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>

コードを修正して達成するにはどうすればよいですか?

12
Wai Yan Hein

LinearLayoutではなくRelativeLayoutを使用してみてください。そして、FloatingActionButtonの場合、このような属性を追加します。

    Android:layout_alignParentBottom="true"
    Android:layout_alignParentEnd="true"
    Android:layout_alignParentRight="true"
    Android:layout_gravity="end|bottom"
26
ajantha

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

線形レイアウトにボタンを配置しないでください。

使用する

FrameLayout他のビューの上にビューを配置できるように

0
Gaurav