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”'。我在协调器布局中使用它遇到了很多麻烦。 –