2016-07-16 19 views
0

Ich mache Anwendung, die ViewPager mit Navigationsleiste und Scrolling-Aktivität mischen. Ich werde Ihnen keinen Code zur Verfügung stellen, da ich für beide nur den kombinierten Android Studio-Vorlagencode verwende.Mixing ViewPager und Scrolling-Aktivität

enter image description here

Dies ist, wie Anwendung aussieht.

Beim Scrollen treten Probleme auf.

Es erreicht nicht das Ende der Seite, weil Titelleiste sichtbar ist.

enter image description here

Und um zur Unterseite der Seite, die Sie Ihren Finger nach oben auf dem Bildschirm müssen blättern und um es zu verbergen blättern Titel zu bewegen.

enter image description here

fand ich für dieses Problem mehrere knifflige Lösung aus:

  1. Make Raum am Ende der Seite.
  2. Make Titel Konstante

Aber diese Lösung für mich nicht zusagt.

Ich brauche das Scrollen funktioniert in den folgenden Schritten.

  1. Wenn Sie mit dem Scrollen beginnen, bewegt sich der Titel nach oben und verschwindet.

  2. Dann scrollt das Fragment bis zum Ende der Seite.


Vielen Dank im Voraus.

Antwort

0

Vielleicht können Sie eine CoordinatorLayout verwenden und auf der Werkzeugleiste:

app:layout_scrollFlags="scroll|enterAlways" 

Und Verhalten Pager Ihrer Ansicht nach setzen:

app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" 

Der komplette XML ist so etwas wie dieses:

  1. in Ihrer Aktivität xml:

    <?xml version="1.0" encoding="utf-8"?> 
    <android.support.v4.widget.DrawerLayout   
        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:id="@+id/drawer_layout" 
        android:layout_width="match_parent"  
        android:layout_height="match_parent" 
        android:fitsSystemWindows="true" tools:openDrawer="start"> 
    
    <include layout="@layout/content_main" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" /> 
    
    <android.support.design.widget.NavigationView 
        android:id="@+id/nav_view" 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:layout_gravity="start" android:fitsSystemWindows="true" 
        app:headerLayout="@layout/nav_header_main" 
        app:menu="@menu/menu_main_drawer" /> 
    
    </android.support.v4.widget.DrawerLayout> 
    
  2. in Ihrem xml enthalten, zum Beispiel content_main.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" 
        xmlns:tools="http://schemas.android.com/tools" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        android:fitsSystemWindows="true"> 
    
        <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: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/vp_main" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        app:layout_behavior="android.support.design.widget.AppBarLayout$ScrollingViewBehavior" /> 
    
    </android.support.design.widget.CoordinatorLayout> 
    
+0

App: layout_scrollFlags = "scroll | enterAlways" und App: layout_behavior = "android.support.design.widget. AppBarLayout $ ScrollingViewBehavior "sind bereits implementiert und es funktioniert nicht richtig. –

+0

Haben Sie genug Artikel, um gescrollt zu werden?Es wird nicht ausblenden, es sei denn das Element ist mehr als Höhe des ViewPager – faruk

+0

Was layout_scrollFlags für CollapsingToolbarLayout sein muss und was für Toolbar –