1

裏面ViewPager我已經使用了協調器佈局內的以下代碼,我使用自定義摺疊工具欄設計。RecyclerView裏面嵌套的滾動視圖

<?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" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:ignore="RtlHardcoded"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/main.appbar" 
     android:layout_width="match_parent" 
     android:layout_height="250dp" 
     android:background="@drawable/backg"> 

     <android.support.design.widget.CollapsingToolbarLayout 
      android:id="@+id/main.collapsing" 
      android:layout_width="match_parent" 
      android:layout_height="250dp" 
      app:contentScrim="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"> 

      <FrameLayout 
       android:id="@+id/main.framelayout.title" 
       android:layout_width="match_parent" 
       android:layout_height="130dp" 
       android:layout_gravity="bottom" 
       android:background="#00000000" 
       android:orientation="vertical" 
       app:layout_collapseMode="parallax" 
       app:layout_collapseParallaxMultiplier="0.3"> 

       <LinearLayout 
        android:id="@+id/main.linearlayout.title" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:paddingLeft="30dp" 
        android:layout_gravity="left" 
        android:orientation="vertical"> 

        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:gravity="bottom" 
         android:text="User Name" 
         android:id="@+id/username" 
         android:textColor="@android:color/white" 
         android:textSize="30sp"/> 

        <TextView 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:layout_marginTop="4dp" 
         android:id="@+id/business" 
         android:text="Users Business" 
         android:textColor="@android:color/white"/> 
       </LinearLayout> 

      </FrameLayout> 

      <android.support.v7.widget.Toolbar 
       android:id="@+id/main.toolbar" 
       android:layout_width="match_parent" 
       android:layout_height="110dp" 
       android:background="#00000000" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" 
       app:title="" 
       app:layout_collapseMode="pin"> 

       <LinearLayout 
        android:layout_width="wrap_content" 
        android:layout_height="match_parent" 
        android:orientation="horizontal"> 

        <ImageView 
         android:layout_width="32dp" 
         android:layout_height="32dp" 
         android:id="@+id/back" 
         android:layout_marginTop="10dp" 
         android:background="@drawable/ic_arrow_back"/> 

        <TextView 
         android:id="@+id/main.textview.title" 
         android:layout_width="wrap_content" 
         android:layout_height="wrap_content" 
         android:padding="12dp" 
         android:text="User Name" 
         android:textColor="@android:color/white" 
         android:textSize="24sp" 
         /> 

       </LinearLayout> 
      </android.support.v7.widget.Toolbar> 
      <android.support.design.widget.TabLayout 
       android:id="@+id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:background="#00000000" 
       android:layout_gravity="bottom" 
       app:tabMode="fixed" 
       app:tabGravity="fill" 
       app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"/> 

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

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

    <android.support.v4.widget.NestedScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" 
     android:layout_gravity="fill_vertical" 
     android:fillViewport="true" 
     android:layout_marginBottom="110dp"> 

      <android.support.v4.view.ViewPager 
       android:id="@+id/viewpager" 
       android:layout_width="match_parent" 
       android:layout_gravity="fill_vertical" 
       android:layout_height="match_parent" 
       android:background="@android:color/white"> 
      </android.support.v4.view.ViewPager> 
    </android.support.v4.widget.NestedScrollView> 
</android.support.design.widget.CoordinatorLayout> 

現在我面對的問題是,當我運行在較低的操作系統版本這個程序,它是所有好的,而在所有viewpager片段Recyclerviews滾動,但是當我使用上述Android.M OS,recyclerview的高度超出顯示屏幕,並且看不到屏幕上的項目。請幫我解決我的問題。我設計了自定義的摺疊欄佈局,但在較低的Android操作系統中它可以使用它。

將帖子
這裏有一些快照時添加我的動作條大小的margin_bottom。
enter image description here < ---快照結束。
因爲我們使用了marginBottom,所以你可以看到viewpage的高度小於屏幕大小。
現在
對於更高的varients,使用marginBottom時它的一切都可以。
enter image description here

回答

1

感謝您的評價,並回答我的問題,但挖多少我沒有發現任何有用的東西,雖然設置高度編程之後。所以我嘗試了下面的代碼片段,這就像一個魅力。 適用於高級變量,在NestedScrollView中設置marginBottom與佈局xml中的操作欄大小以及較低的變量,請在下面使用此Hack。

NestedScrollingView nsv = findViewByID(R.id.nsv); 

if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.M){ 
     android.support.design.widget.CoordinatorLayout.LayoutParams lpm = new android.support.design.widget.CoordinatorLayout.LayoutParams(
       android.support.design.widget.CoordinatorLayout.LayoutParams.MATCH_PARENT, android.support.design.widget.CoordinatorLayout.LayoutParams.MATCH_PARENT); 
     lpm.setMargins(0,0,0,0); 
     lpm.setBehavior(new android.support.design.widget.AppBarLayout.ScrollingViewBehavior()); 
     nsv.setLayoutParams(lpm); 
     nsv.requestLayout(); 
    } 

再次感謝您的幫助。

0

您可以嘗試在viewpapger之上添加linearLayout並嘗試一下。

<android.support.v4.widget.NestedScrollView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="800dp" 
    android:orientation="vertical"> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/pager" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"/> 
+0

我已經使用了scrollview,而且我正在使用摺疊工具欄,所以我也使用它與nestedscrollviewenabled =「true」,但是不再工作。我面臨的問題是在NestedScrollView中保持viewpage的高度。 – ShockWave

+0

增加了新的代碼..檢查一個,讓我knw – Anonymous

+0

我已經嘗試了你告訴我先生的建議,但我面臨的問題是viewPagers高度。當我在嵌套的滾動佈局中添加fillViewPort =「true」時,它佔據了全部高度,由於這個原因,recyclerview佔據了viewpager的全部高度,最後,我的其他回收視圖項目是屏幕截屏,但是,是當我添加我的工具欄高度marginBottom,它工作正常,但現在,問題是與較低的varients – ShockWave

0

如果我理解你的問題,你必須添加工具欄的邊界(如你已經說過的)。我通過加入layout_gravity解決了這個問題。

<android.support.v4.widget.NestedScrollView 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
android:layout_gravity="fill_vertical" 
android:layout_marginBottom="?attr/actionBarSize"> 
+0

是的,它正在解決高階變量的問題,每當我添加裕量底部的操作欄大小....但這個裕度是有問題的低操作系統變量和顯示空白空間(給定的邊際)低於viewpager在較低的操作系統。 – ShockWave

+0

您還添加了'android:layout_gravity'? –

+0

你的問題也可能是你在FrameLayout中使用'android:fitsSystemWindows =「true」'。我在協調器佈局中使用它遇到了很多麻煩。 –