5

我有一個CoordinatorLayoutToolbarTabLayoutAppBarLayout內部。另外,我在CoordinatorLayout內部有一個ViewPager,但在ViewPager之外。ViewPager在協調器佈局中的高度超過可用

問題是ViewPager's高度大於實際可用的高度,導致我的Fragment的一些視圖被剪切。

<?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:background="@color/lightGray" 
    android:fitsSystemWindows="true"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/app_bar_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar2" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      app:popupTheme="@style/AppTheme.PopupOverlay" 
      app:layout_scrollFlags="scroll|enterAlways"/> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabLayout" 
      android:scrollbars="horizontal" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:fillViewport="false"/> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior"/> 

</android.support.design.widget.CoordinatorLayout> 

這就是我說的ViewPager高度錯誤時的意思。
enter image description here

+0

[ViewPager在屏幕底部切斷(Android)]中的部分內容可能重複](http://stackoverflow.com/questions/34407024/part-of-fragment-inside-viewpager-getting-cut-在屏幕底部和底部) –

回答

4

一種可能的黑客可以添加相同底部邊緣作爲工具欄

?ATTR/actionBarSize。你甚至可以利用其他可能的邊緣利潤來獲得最佳效果。

+0

這樣做可以解決高度錯誤的問題,但是所有的滾動效果都被刪除了。 另外,在沒有「滾動」的情況下「enterAlways」有什麼意義?爲了使用「enterAlways | snap | etc」,我認爲滾動是強制性的, –

+1

實際上,在所有情況下移除layout_scrollFlags屬性將解決高度問題。由於滾動確實是任何滾動發生的必需條件。這個解決方案更受可能重複的影響。感覺很奇怪,同樣的設置也不適用於其他人。如果你想保持滾動然後有一個輕微的黑客,我會請你嘗試,因爲錯誤的高度幾乎等於工具欄的高度。嘗試放置**?attr/actionBarSize **的底部邊距並將滾動標誌保留爲原始。如果這給你滿意的結果,我會更新這個答案。 –

+0

嘗試在視圖尋呼機中提出的底部邊距。 –

相關問題