Ich habe versucht, das neue unterste Blatt aus der Unterstützungsbibliothek 23.2.0 zu verwenden, um ein unteres Blatt auf Vollbild zu vergrößern, wie in den Designrichtlinien vorgeschlagen
Das funktioniert sehr gut, aber das unterste Blatt geht unter meiner ActionBar und unter meinen Registerkarten.
Wie ist es möglich, das untere Blatt über die Symbolleiste ziehen zu lassen? Mein Menü ist folgendermaßen aufgebaut:
<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.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|snap|enterAlways"
app:popupTheme="@style/AppTheme.PopupOverlay"/>
<Android.support.design.widget.TabLayout
Android:id="@+id/tabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"/>
</Android.support.design.widget.AppBarLayout>
<Android.support.v4.view.ViewPager
Android:id="@+id/container"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<include
Android:id="@+id/playerLayout"
layout="@layout/player_main"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:behavior_peekHeight="?attr/actionBarSize"
app:layout_behavior="@string/bottom_sheet_behavior"
app:model="@{model}"/>
</Android.support.design.widget.CoordinatorLayout>
Die Variable AppBarLayout
hat eine Standardhöhe von 4dp
(dem Dimensionsressourcenwert design_appbar_elevation
).
Standardmäßig werden CoordinatorLayout
wie alle FrameLayout
Layoutelemente mit einer höheren Höhe vor einer niedrigeren Höhe auf API 21- und höheren Geräten angezeigt.
Versuchen Sie, Android:elevation="@dimen/design_appbar_elevation"
zu Ihrem Layout hinzuzufügen.
Beachten Sie, dass die Höhe eines modalen unteren Blattes @dimen/design_bottom_sheet_modal_elevation
== 16dp
ist.
Wenn die obige Antwort nicht hilft, versuchen Sie, Ihr BottomSheet einzustellen:Android:elevation="@dimen/design_appbar_elevation"
Android:fitsSystemWindows="true"
und erstellen Sie Ihr Fragment so:videoFragment = VideoFragment.newInstance();
getSupportFragmentManager().beginTransaction()
.replace(R.id.video_fragment, videoFragment)
.commit();
so nicht: videoFragment = (VideoFragment) getSupportFragmentManager().findFragmentById(R.id.video_fragment);
Zum Beispiel habe ich ein solches Layout:
<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:background="@color/activity_background">
<Android.support.design.widget.AppBarLayout
Android:id="@+id/appBar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/ThemeOverlay.AppCompat.ActionBar">
<include layout="@layout/toolbar"/>
</Android.support.design.widget.AppBarLayout>
<Android.support.v7.widget.RecyclerView
Android:id="@+id/recycler_view"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"/>
<Android.support.design.widget.BottomNavigationView
Android:id="@+id/bottom_navigation"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom"
app:itemBackground="@color/white"
app:menu="@menu/bottom_navigation_main"/>
<FrameLayout
Android:id="@+id/video_fragment"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:elevation="@dimen/design_appbar_elevation"
Android:fitsSystemWindows="true"
app:behavior_hideable="true"
app:behavior_peekHeight="0dp"
app:layout_behavior="Android.support.design.widget.BottomSheetBehavior"/>
und es funktioniert nicht ohne spezifizierte Dinge