我的活动中有多个视图,包括2个垂直(1行)RecyclerViews
。我使用setNestedScrollingEnabled(false)
禁用了RecyclerViews上的滚动,只是想让整个活动可滚动。
这并不像预期的那样奏效。触摸RecyclerViews
(我的AppBarLayout
)之外的视图会触发滚动,但只要我尝试在其中一个RecyclerViews
内滚动,它就不再有效了。我是否必须将触摸事件传递给我的主视图,还是有其他解决方案?
我的布局看起来像这样(剥离):
<android.support.design.widget.AppBarLayout>
<android.support.design.widget.CollapsingToolbarLayout>
<RelativeLayout>
<ImageView>
<LinearLayout>
<TextView />
<TextView />
</LinearLayout>
</RelativeLayout>
<android.support.v7.widget.Toolbar />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:scrollbars="none" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:scrollbars="none" />
</LinearLayout>
</LinearLayout>
编辑:刚刚添加了一张图片。触摸红色部分按预期滚动整个活动,但触摸蓝色部分不会滚动任何内容。
答案 0 :(得分:5)
在NestedScrollView
中使用RecyclerView <android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false" />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false" />
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
答案 1 :(得分:4)
Button
作为RecyclerView
和app:layout_behavior="@string/appbar_scrolling_view_behavior"
布局的容器。NestedScrollView
设为CoordinatorLayout
<android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.AppBarLayout>
<android.support.design.widget.CollapsingToolbarLayout>
<RelativeLayout>
<ImageView>
<LinearLayout>
<TextView />
<TextView />
</LinearLayout>
</RelativeLayout>
<android.support.v7.widget.Toolbar />
</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">
<LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:scrollbars="none" />
</LinearLayout>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<Button />
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipToPadding="false"
android:scrollbars="none" />
</LinearLayout>
</LinearLayout>
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
作为根布局。尝试此结构:
postgresql.conf
希望这会有所帮助〜
答案 2 :(得分:0)
覆盖onInterceptTouchEvent方法并返回true。这会阻止孩子处理触摸事件。
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
{
return true;
}