【问题标题】:Unable to scroll view pager in nested scroll view layout无法在嵌套滚动视图布局中滚动视图寻呼机
【发布时间】:2019-06-20 09:45:52
【问题描述】:

我在嵌套滚动视图下有视图寻呼机和滑动刷新视图。它工作正常,但问题是视图寻呼机不滚动,只有回收站视图在视图寻呼机下方滚动。我想滚动布局。

这是我下面的xml代码:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Home"
android:orientation="vertical"
android:id="@+id/linearHome"
android:paddingBottom="16dp"
android:layout_marginTop="10dp"
android:paddingLeft="12dp"
android:paddingRight="12dp"
android:layout_marginBottom="50dp">

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/progress2"
    android:layout_centerInParent="true"/>

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scrollbars="none"
    android:fillViewport="true">


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

    <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="130dp"
        android:id="@+id/homeOffers"/>

    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/indicator"
        app:tabGravity="center"
        app:tabIndicatorHeight="0dp"
        app:tabBackground="@drawable/tab_selector"/>

    <android.support.v4.widget.SwipeRefreshLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/refresh">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/recycle"/>

   </android.support.v4.widget.SwipeRefreshLayout>

</LinearLayout>

</android.support.v4.widget.NestedScrollView>

</RelativeLayout>

屏幕截图

如屏幕截图所示,寻呼机设置为固定在顶部,而回收站视图在下方滚动。我也想滚动视图寻呼机,请让我知道如何实现所需的布局。任何帮助将不胜感激。

谢谢

【问题讨论】:

  • viewPager 不滚动意味着..您的nestedScrollView 不滚动..?我说的对吗?
  • 是的 Prachi 完全正确..
  • 在下面查看我的答案

标签: android android-layout


【解决方案1】:

将您的 recyclerView 替换为,

<android.support.v7.widget.RecyclerView
    android:id="@+id/recycle"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

这里,

app:layout_behavior="@string/appbar_scrolling_view_behavior"

将管理其余的事情。

【讨论】:

  • 添加后没有任何变化。
  • @Digvijay 您不必将 recyclerview 放在嵌套布局中。尝试将其放在嵌套布局之外
  • 当嵌套滚动视图的高度与父级匹配时,如何将回收站视图置于嵌套滚动视图之外。
  • 使其成为 wrap_content
  • 在将滑动刷新布局置于嵌套滚动视图之外并将嵌套滚动视图高度更改为 wrap_content 视图分页器不滚动后,它固定在顶部,只有回收器视图在滚动。
【解决方案2】:

只需在 NestedScrollView添加 app:layout_behavior="@string/appbar_scrolling_view_behavior" 以滚动其子布局,并从 NestedScrollView 删除 android:scrollbars="none"强>。

【讨论】:

  • 是否需要在 strind.xml 中设置任何字符串值
  • 试用后会回复你的。
【解决方案3】:

要滚动整个布局,我们需要将嵌套滚动视图包裹在滑动刷新布局下,这将滚动整个布局。

更新布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   tools:context=".Home"
   android:orientation="vertical"
   android:id="@+id/linearHome"
   android:paddingBottom="16dp"
   android:layout_marginTop="10dp"
   android:paddingLeft="12dp"
   android:paddingRight="12dp"
   android:layout_marginBottom="50dp">

<ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/progress2"
    android:layout_centerInParent="true"/>

<ImageView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:id="@+id/nobook"
    android:src="@drawable/nobook"
    android:layout_centerInParent="true"
    android:visibility="gone"/>

<android.support.v4.widget.SwipeRefreshLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/refresh">

<android.support.v4.widget.NestedScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/scroll"
    android:scrollbars="none"
    android:fillViewport="true">

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

        <android.support.v4.view.ViewPager
        android:layout_width="match_parent"
        android:layout_height="130dp"
        android:id="@+id/homeOffers"/>

    <android.support.design.widget.TabLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/indicator"
        app:tabGravity="center"
        app:tabIndicatorHeight="0dp"
        app:tabBackground="@drawable/tab_selector"/>


        <android.support.v7.widget.RecyclerView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:id="@+id/recycle"/>

      </LinearLayout>

   </android.support.v4.widget.NestedScrollView>

 </android.support.v4.widget.SwipeRefreshLayout>

</RelativeLayout>

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多