8

Mam poniżej xml plik, który ma 1) Pasek narzędzi 2) TabLayout 3) Widok niestandardowy i 4) ViewPager. Kiedy kładę Toolbar, TabLayout, Custom View wewnątrz AppBarLayout, to popycha ViewPager dół jak tak:Android AppBarLayout przesuwa ViewPager w dół

enter image description here

xml:

<?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" 
    android:id="@+id/feed_coordinator_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true"> 


    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:fitsSystemWindows="true"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/collapsing_tool_bar_layout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fitsSystemWindows="true" 
      app:contentScrim="?attr/colorPrimary" 
      app:expandedTitleTextAppearance="@style/Widget.AppCompat.ActionBar.TabText" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:statusBarScrim="?attr/colorAccent"> 


      <android.support.v7.widget.Toolbar 
       android:id="@+id/toolbar_alt" 
       android:layout_width="match_parent" 
       android:layout_height="?attr/actionBarSize" 
       android:background="@color/primary_color" 
       android:minHeight="?attr/actionBarSize" 
       android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:layout_collapseMode="none" 
       app:layout_scrollFlags="scroll|exitUntilCollapsed" 
       app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> 


      </android.support.v7.widget.Toolbar> 
     </android.support.design.widget.CollapsingToolbarLayout> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/feed_sliding_tabs_alt" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:tabGravity="fill" 
      app:tabMode="fixed" 
      app:tabSelectedTextColor="@color/accent_color" 
      app:tabTextColor="@color/accent_color_per_70" /> 

     <LinearLayout 
      android:id="@+id/activity_feed_fl_canli_skor" 
      android:layout_width="match_parent" 
      android:layout_height="52dp" 
      android:background="@drawable/mac_back" 
      android:orientation="vertical"> 


     </LinearLayout> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/activity_feed_alt_view_pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 


    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/floating_action_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:src="@drawable/ic_feed_new_post" 
     android:theme="@style/FabTheme" 
     android:visibility="invisible" 
     app:backgroundTint="@color/primary_color" 
     app:borderWidth="0dp" 
     app:layout_anchor="@id/feed_coordinator_layout" 
     app:layout_anchorGravity="bottom|right|end" /> 
</android.support.design.widget.CoordinatorLayout> 

kiedy przewijać, Toolbar zostanie ukryty, co jest dobre. Ale mój przepełniony główny ekran i dno ViewPager nie są widoczne. Co mogę spróbować?

Gdy przewijam w górę, Toolbar zostaje niewidoczny, a ViewPager jest podciągnięty i w pełni widoczny na ekranie. Ale Toolbar odpowiada tylko na przewinięcie 1. strony ViewPager. trick: Na razie mogę umieścić paddingBottom do frament wewnątrz ViewPager

+0

Zrobił to samo i musiał usunąć CoordinatorLayout i zastąpić go LinearLayout, aby umożliwić ViewPager nie przepełnienie ekranu. Dla mnie łatwiej to zrobić. Może nie być najlepszym rozwiązaniem dla innych. –

+0

Witam, mam ten sam problem. Czy udało ci się to naprawić? –

+1

@GeorgiKoemdzhiev nope, po prostu dodając dopełnienie w dolnej części fragmentu wewnątrz ViewPager, więc u dołu fragmentu będzie widoczny –

Odpowiedz

2

To nie jest rzeczywiste rozwiązanie, ale na razie dodałem tego wiersza kodu w widoku pager i jego pracy:

android:paddingBottom="?attr/actionBarSize" 

więc mój pełny układ jest:

<?xml version="1.0" encoding="utf-8"?> 

<android.support.design.widget.AppBarLayout 
    android:id="@+id/appbar" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingTop="@dimen/appbar_padding_top" 
    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:layout_scrollFlags="scroll|enterAlways" 
     app:popupTheme="@style/AppTheme.PopupOverlay"> 

    </android.support.v7.widget.Toolbar> 

</android.support.design.widget.AppBarLayout> 

<android.support.v4.view.ViewPager 
    android:id="@+id/container" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="?attr/actionBarSize" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

    <android.support.v4.view.PagerTabStrip 
     android:id="@+id/pager_header" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="top" 
     android:paddingBottom="4dp" 
     android:paddingTop="4dp" /> 

</android.support.v4.view.ViewPager> 

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="end|bottom" 
    android:layout_margin="@dimen/fab_margin" 
    android:src="@mipmap/ic_search" /> 

Powiązane problemy