我目前有一個FrameLayout
的問題在CoordinatorLayout
從Android的設計支持庫,而我也跟着從這個post說明在創建標籤。的Android SupportLib - 中的FrameLayout與CoordinatorLayout消耗AppBarLayout整個屏幕高度
基本上大部分的東西如預期,容器碎片膨脹到FrameLayout
和他們的製表片段correclty加入ViewPager
爲選項卡(需要這種方式,因爲我有很多碎片應該重用佈局) 。
我正在與掙扎的問題是,所述FrameLayout
(並且結果也製表片段)消耗整個屏幕的高度,以便它重疊Toolbar
和TabLayout
。爲了可視化的問題,我已經創建了下面的圖像:
基佈局與CoordinatorLayout
,Toolbar
,和TabLayout
:
<android.support.design.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<include layout="@layout/toolbar" />
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.CoordinatorLayout>
由充氣片段使用分開的佈局到container
:
<android.support.v4.view.ViewPager
android:id="@+id/viewPager"
android:layout_height="match_parent"
android:layout_width="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
個
所有片段由我BaseFragment
-class(SO上調用inflater.inflate(getLayoutRes(), null);
是導致同樣的問題,這個問題在另一篇文章)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(getLayoutRes(), container, false);
}
充氣如果我與AppBarLayout
低於正常LinearLayout
的FrameLayout
開始更換CoordinatorLayout
如預期,但根據documentationAppBarLayout
其大部分功能需要成爲CoordinatorLayout
的直接子。
我可以加marginTop
到FrameLayout
,但我想知道是否有適當的解決方案。預先感謝任何提示!
這解決了我遇到的同樣的問題,謝謝,但我不知道爲什麼。 appbar_scrolling_view_behavior是做什麼的? – Micro
@MicroR - 我建議閱讀[AppBarLayout.ScrollingViewBehavior [(http://developer.android.com/reference/android/support/design/widget/AppBarLayout.ScrollingViewBehavior.html)的Javadoc)或者看[source代碼](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/master/design/src/android/support/design/widget/AppBarLayout.java#1128) - 它添加了所需的如果放在可滾動視圖上(如'NestedScrollView'或'RecyclerView'),填充不會與AppBarLayout重疊,也不允許AppBarLayout響應滾動。 – ianhanniballake
@ianhanniballake我已經使用過你的建議,但問題是我得到在我的Tablayout和framelayout之間有一些額外的空間我已經應用bk顏色來分析原因,但沒有背景顏色出現在UI – Erum