Ich habe ein klassisches Layout mit einer ToolBar auf der Oberseite, einem TabLayout darunter, und einem ViewPager, der Tabs vom TabLayout umschaltet. Wenn der Inhalt des ViewPagers scrollbar ist, sollte die ToolBar außerhalb der Sichtweite verschwinden und das TabLayout sollte folgen und bleiben, wenn es den oberen Rand erreicht.Android CoordinatorLayout + AppbarLayout + Viewpager immer scrollen
All dies ist in meinem aktuellen Code gut, außer dass die ToolBar immer scrollbar ist, unabhängig von der Größe des ViewPager-Inhalts. Siehe meinen Code unten. Irgendwelche brillanten Ideen, wie das zu beheben ist?
<?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:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.ToolBar"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"
android:scrollbars="horizontal"
app:tabIndicatorColor="@color/black_text" />
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/tabs_activity_view_pager"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
</android.support.design.widget.CoordinatorLayout>
EDIT:
Ich kann sehen, dass die viewPager Höhe die gleiche wie die Höhe für die gesamte Stammansicht ist. Dies könnte beabsichtigt sein, da das appbar_scrolling_view_behavior scheinbar einen oberen und unteren Offset hinzufügt. Es erscheint jedoch seltsam, da es immer dazu führt, dass die Symbolleiste und die Tableiste durchgeblättert werden.
Können Sie das besser erklären: "Die ToolBar sollte sich außer Sicht bewegen" und "die ToolBar ist immer scrollbar" Ich kann nicht verstehen, was das gesuchte Ergebnis ist – lubilis
Das Ergebnis, wenn Inhalt in Viewpager scrollbar und gescrollt ist: Tabs Sticks Nach oben, die Symbolleiste wird herausgeklappt. Ergebnis, wenn Inhalt in ViewPager nicht gescrollt werden kann: ToolBar oben, TabLayout unten. – Kenneth
Wenn der Inhalt des Viewpager nicht gescrollt werden kann, entfernen Sie die App: layout_behavior = "@ string/appbar_scrolling_view_behavior" –