4

Взгляните ниже FAB:FloatingActionButton появляется под экран при использовании TabLayout и ViewPager

Image

Это не появляется, если я не свернуть Toolbar. Вот мой XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/toolbar" 
    android:layout_marginTop="0dp" 
    android:animateLayoutChanges="true" 
    android:background="@android:color/white" 
    android:layoutDirection="locale" 
    android:orientation="vertical" 
    android:padding="0dp"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/cLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <android.support.v7.widget.RecyclerView 
      android:id="@+id/list" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginTop="0dp" /> 

     <android.support.design.widget.FloatingActionButton 
      android:id="@+id/fab" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="5dp" 
      android:background="@color/accent" 
      android:src="@drawable/ic_add" 
      app:layout_anchor="@id/list" 
      app:layout_anchorGravity="bottom|end" /> 
    </android.support.design.widget.CoordinatorLayout> 
</RelativeLayout> 

Почему это происходит, если я не устанавливал поведение для FAB? Есть ли какое-либо свойство, которое я должен добавить ко всему, чтобы я мог предотвратить это поведение?

+0

Удалите эту строку из верхнего относительного макета 'андроида: layout_below =«@ + код/​​панель инструментов» – cafebabe1991

+0

' И сделать макет координатора в качестве верхнего наиболее макете – cafebabe1991

+0

@ cafebabe1991 не работал –

ответ

3

Просто удалите ваш FloatingActionButton друг от Fragment и добавить его в свой Activity. Таким образом, не только FAB остается на месте, но также устраняет вашу проблему. Затем вы можете использовать getActivity().findViewByIf(id) в своем Fragment и установить onClickListener в каждом Fragment.

-1

Я предлагаю вам удалить RelativeLayout и перестраивать макет так:

<android.support.design.widget.CoordinatorLayout 
android:id="@+id/cLayout" 
android:layout_width="match_parent" 
android:layout_height="match_parent"> 
<android.support.design.widget.AppBarLayout 
    android:id="@+id/app_bar_layout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 
</android.support.design.widget.AppBarLayout> 
<android.support.v7.widget.RecyclerView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_marginTop="0dp" /> 
<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_margin="5dp" 
    android:background="@color/accent" 
    android:src="@drawable/ic_add" 
    app:layout_anchor="@id/list" 
    app:layout_anchorGravity="bottom|end" /> 
<com.rey.material.widget.ProgressView 
    android:id="@+id/progress_bar" 
    android:layout_width="60dp" 
    android:layout_height="60dp" 
    android:layout_centerHorizontal="true" 
    android:layout_centerVertical="true" 
    app:pv_autostart="true" 
    app:pv_circular="true" 
    app:pv_progressMode="indeterminate" 
    app:pv_progressStyle="@style/Material.Drawable.CircularProgress" /> 
</android.support.design.widget.CoordinatorLayout> 
+0

Не работает ... –

-1

раскладка координатор не ведет себя как относительное расположение, вы не можете иметь несколько детей, не мешая друг другу. так просто сделать один ребенок координатора макета относительного расположения т.е. и внутри него добавить recyclerView и floatingActionButton

<RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

      <android.support.v7.widget.RecyclerView 
       android:id="@+id/list" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:layout_marginTop="0dp" /> 

       <android.support.design.widget.FloatingActionButton 
        android:id="@+id/fab" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_margin="5dp" 
        android:background="@color/accent" 
        android:src="@drawable/ic_add" 
        app:layout_anchor="@id/list" 
        app:layout_anchorGravity="bottom|end" /></RelativeLayout> 
+0

Не работает ... –

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