主にlistview
で動作するAndroidアプリを開発しています。しかし、Floating Action Button
をLong ListView
と一緒に使用すると問題が発生します。私の問題は以下のように。
リストビューにいくつかの項目しかない場合。 Floating item
が表示されます。
これはスクリーンショットです:
上記のとおり、Floating Action Button
は引き続き表示されますが、ListView
に非常に多くのアイテムがあり、画面に対して過剰になると、Floating Action Button
は表示されません。
これはLong Listview
のスクリーンショットです
2番目のスクリーンショットでは、scrolled down
にすることはできません。
私が達成したいのは、Listview
の上の画面の右下に常にフローティングボトムを配置することです。 HTML
およびCSS
の固定位置と同様。
Listview
の高さに関係なく、常にFloating Action Button
が欲しい
これは私のレイアウトファイルです
<?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>
コードを修正して達成するにはどうすればよいですか?
LinearLayoutではなくRelativeLayoutを使用してみてください。そして、FloatingActionButtonの場合、このような属性を追加します。
Android:layout_alignParentBottom="true"
Android:layout_alignParentEnd="true"
Android:layout_alignParentRight="true"
Android:layout_gravity="end|bottom"
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>
線形レイアウトにボタンを配置しないでください。
使用する
FrameLayout他のビューの上にビューを配置できるように