8

У меня есть деятельность с компоновкой:Как исправить положение зрения внутри ViewPager и 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 в макет мероприятия.

+0

Почему вы не могли перемещать FloatingActionButton в свой макет деятельности? –

ответ

3

Вы должны использовать FAB в макете деятельности. . Если вам нужны разные цвета или действия , вы можете определить FAB в своем фрагменте и установить цвет или действие для каждого фрагмента.

8

Вы должны перенести свою плавающую кнопку действия с вашего пейджера представления на макет координатора. Оттуда вы можете установить плавающее действие положение кнопки с

android:layout_gravity="end|bottom" 

или

app:layout_anchor="@id/yourViewToAnchor" 
app:layout_anchorGravity="bottom|right|end" 

И не забудьте поставить свою кнопку плавающего действия на нижне вашего координатора макета XML, чтобы гарантировать, что ваш плавающими кнопку действия в верхней части макета.

+0

Это сработало для меня. Благодаря! – lalosoft

+0

Не могли бы вы объяснить мне, как я могу заставить его работать? Я не хочу переместить мой взгляд из фрагмента в макет действия. Пожалуйста, помогите мне. –

+0

@SagarPanwala. Вы можете сделать свою обертку фрагмента скорее компоновкой координатора вместо другой компоновки. Оттуда вы можете установить плавающую кнопку действия. – HendraWD

Смежные вопросы