我使用下面的佈局,CoordinatorLayout
內部保持它AppBarLayout
(隨着Toolbar
和TabLayout
裏面)和一個佔位符RelativeLayout
,這樣我就可以添加和替換它的片段。CoordinatorLayout與工具欄和片段
我遇到了margin margin錯誤,我在RelativeLayout上添加的片段總是會超出屏幕底部(類似於AppBarLayout
高度的大小),我試着將它的高度設置爲wrap_content
和match_parent
,在這兩種情況下,它都會過度。
如果我從RelativeLayout
中刪除app:layout_behavior="@string/appbar_scrolling_view_behavior"
,那麼它的頂部將在AppBarLayout
之下,這也不是期望的結果。
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true">
<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/main_content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
app:tabIndicatorHeight="4dp"
app:tabIndicatorColor="#ffffff"
app:tabMode="scrollable"
android:visibility="gone"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<RelativeLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:id="@+id/main_fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<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="20dp"
android:src="@drawable/ic_done" />
</android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header"
app:menu="@menu/drawer_view"/>
</android.support.v4.widget.DrawerLayout>
你能舉一個更好的例子嗎?那'RelativeLayout'不會做任何事情,並且由於'wrap_content',技術上'0'的高度,除非你以編程的方式做它。如果您打算將它用作「包含器」,請使用「FrameLayout」。 –
我把它放在一個片段上,做一個片段事務並提供RelativeLayout的id,我也嘗試使用FrameLayout相同的結果。 – Calc
很顯然,你從Chris Banes的例子中得到了這個:https://github.com/chrisbanes/cheesesquare/blob/master/app/src/main/res/layout/include_list_viewpager.xml。注意他的'ViewPager'使用'match_parent'? –