Как зафиксировать положение вида внутри видоискателя и CoordinatorLayout
У меня есть задание с макетом:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="56dp"
android:layout_width="match_parent"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways"
app:contentInsetLeft="0dp"
app:contentInsetStart="0dp"
app:layout_collapseMode="pin"/>
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="wrap_content"
app:tabIndicatorColor="@color/indicator"
app:tabMode="scrollable"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
Фрагмент, загруженный в ViewPager
, имеет вид:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/refresh_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="10dp"
android:scrollbars="vertical" />
</android.support.v4.widget.SwipeRefreshLayout>
<android.support.design.widget.FloatingActionButton
android:id="@+id/download_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="16dp"
android:src="@drawable/ic_btn_download" />
</RelativeLayout>
Как я могу исправить положение (предотвратить прокрутку) FloatingActionButton
внутри фрагмента (он прокручивается вместе со своим родителем)?
FloatingActionButton
в макет активности.2 ответа:
Вы должны использовать FAB в макете действия. .Если вам нужны другие цвета или действия вы можете определить FAB в своем фрагменте и задать цвет или действие для каждого фрагмента.
Вы должны переместить плавающую кнопку действия из вашего пейджера просмотра в макет координатора. Оттуда вы можете установить свое плавающее положение кнопки действия с помощью
android:layout_gravity="end|bottom"
Или
app:layout_anchor="@id/yourViewToAnchor" app:layout_anchorGravity="bottom|right|end"
И не забудьте поместить плавающую кнопку действия в самом нижнем месте вашего XML-макета координатора, чтобы обеспечить плавающую кнопку действия в верхней части вашего макета.