我有一个BottomSheetDialogFragment
与RecyclerView
。问题是,只要RecyclerView
没有向上滚动(当前我无法滚动我的RecyclerView
,因为尝试将总是关闭BottomSheetDialogFragment
),所以我想要禁用BottomSheetDialogFragment
的拖动关闭功能。任何想法如何实现这一目标?BottomSheetDialogFragment - 允许滚动的子节点
5
A
回答
0
变化在BottomSheetDialogFragment在setupDialog方法的行为:
CoordinatorLayout.LayoutParams layoutParams = (CoordinatorLayout.LayoutParams) ((View) contentView.getParent()).getLayoutParams();
final CoordinatorLayout.Behavior behavior = layoutParams.getBehavior();
if (behavior != null && behavior instanceof BottomSheetBehavior) {
((BottomSheetBehavior) behavior).setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_HIDDEN) {
dismiss();
}
if (newState == BottomSheetBehavior.STATE_DRAGGING) {
((BottomSheetBehavior) behavior).setState(BottomSheetBehavior.STATE_EXPANDED);
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
}
+1
这将完全禁用关闭拖动功能,但我可以检查'RecyclerView'是否也滚动到顶部,那么这应该工作 – prom85
+0
不适用于Nestedscrollview –
0
只是把它作为一个BottomSheetDialog,并简单地禁用其拖动或滑动时联系。
当创建BottomSheetDialog,它会自动换行布局在 CoordinatorLayout,所以如果你想从您的视图的行为,请拨打
最终BottomSheetBehavior行为= BottomSheetBehavior .from((View)view.getParent());
然后通过这种行为,你可以做你所需要的。
final BottomSheetBehavior behavior = BottomSheetBehavior.from((View) view.getParent());
behavior.setHideable(false);
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
});
这对我有效,希望它有帮助。
相关问题
- 1. 不允许从节点读取帖子
- 2. 节点:允许CORS的PUT
- 3. UIWebView允许点击,但阻止滚动
- 4. fullpage.js - 滚动时允许正常滚动
- 5. 允许滚动条重叠?
- 6. UIScrollView:只允许滚动
- 7. CSS不允许滚动
- 8. 允许查看未发布的节点
- 9. 允许滚动EditText和滑动ViewPager
- 10. 如何允许在Android的PopupWindow滚动
- 11. 如何允许滚动NSTextView的结尾?
- 12. 允许滚动图像上下的UIScrollView
- 13. 允许像素滚动的窗体c#?
- 14. 设置div的焦点底部并允许滚动
- 15. 允许厨师节点上传食谱
- 16. Matlab SimBiology - 允许自我连接节点
- 17. 允许在节点上跨域共享
- 18. TreeView - 只允许编辑一些节点
- 19. 允许节点表单多次提交
- 20. Graphviz允许边缘节点重叠
- 21. 允许滚动固定父元素的绝对子元素
- 22. 角度UI树 - 只允许拖放到第二级(子节点)
- 23. 在节点加载后停止vis.js物理,但允许可拖动节点
- 24. 隐藏的滚动条不允许页面滚动。 (CSS)
- 25. iOS滚动视图允许滚动过去的内容
- 26. 如何滚动滚动AccessibilityNodeInfo节点
- 27. 允许UIScrollView滚动时按下UIButton
- 28. 允许滚动和排序到GWT Grid
- 29. SwipeRefreshLayout不允许我向上滚动
- 30. uiscrollview只允许滚动回来
您可以使用NestedScrollView作为RecyclerView的父级。它可能有帮助。 –
这没有帮助。 'RecyclerView'支持作为一个嵌套滚动视图开箱即用... – prom85