我有一個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. CSS不允許滾動
- 7. UIScrollView:只允許滾動
- 8. 允許滾動EditText和滑動ViewPager
- 9. 如何允許在Android的PopupWindow滾動
- 10. 設置div的焦點底部並允許滾動
- 11. 允許滾動固定父元素的絕對子元素
- 12. TreeView - 只允許編輯一些節點
- 13. 允許在節點上跨域共享
- 14. 角度UI樹 - 只允許拖放到第二級(子節點)
- 15. 在節點加載後停止vis.js物理,但允許可拖動節點
- 16. 隱藏的滾動條不允許頁面滾動。 (CSS)
- 17. iOS滾動視圖允許滾動過去的內容
- 18. 手機瀏覽器不允許滾動
- 19. 取消分組不會允許滾動
- 20. SwipeRefreshLayout不允許我向上滾動
- 21. uiscrollview只允許滾動回來
- 22. 允許DataGridView列標題滾動
- 23. 「滾動允許即使在scrollpolicies是關」
- 24. setSelection後允許滾動列表視圖
- 25. 允許UIScrollView滾動時按下UIButton
- 26. CSS/JS - 禁用點擊事件,但允許在DIV上滾動
- 27. android.support.v4.view.ViewPager不允許在android 2.2中滾動孩子嗎?
- 28. Erlang:不允許的節點/也許Cookie問題
- 29. 防止身體滾動,但允許疊加滾動
- 30. 鎖定父滾動,只允許div滾動
您可以使用NestedScrollView作爲RecyclerView的父級。它可能有幫助。 –
這沒有幫助。 'RecyclerView'支持作爲一個嵌套滾動視圖開箱即用... – prom85