Articles of 底部

无法隐藏底部工作表,Android

我的底页有问题,因为当我打开活动时它会打开,阻止视图 我认为,这种情况发生了,因为XML属性声明底层高度为350dp: 问题是,我无法将该值更改为0dp,因为下次当我尝试打开底页时 ,没有底页 ,因为高度为0dp,所以它不会显示任何内容。 我的问题是,有没有办法宣布底页关闭? (我尝试将setState设置为STATE_COLLAPSED但不起作用)。 Bellow是与底部工作表交互的java代码。 JAVA: View bottomSheet = findViewById( R.id.bottom_sheet ); mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(View bottomSheet, int newState) { if (newState == BottomSheetBehavior.STATE_COLLAPSED) { //mBottomSheetBehavior.setPeekHeight(0); //mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); //mBottomSheetBehavior.isHideable(); } } @Override public void onSlide(View bottomSheet, float slideOffset) { } });

RecyclerView(水平)嵌套在BottomSheet中,防止垂直滚动

我有一个使用具有HORIZONTAL方向的LinearLayoutManager的RecyclerView ,使用BottomSheet Behavior嵌套在FrameLayout 。 尝试在RecyclerView垂直拖动时, BottomSheet不响应拖动事件。 可能这是因为对于具有水平方向的LayoutManager禁用了垂直滚动。 我已经尝试重写LinearLayoutManager.canScrollVertically()并返回true。 这种工作..如果你以非常小心的方式垂直拖动, BottomSheet将响应。 但是,只要涉及任何水平移动, BottomSheet停止响应垂直拖动事件。 我不确定覆盖canScrollVertically()是否是正确的方法 – 从用户体验的角度来看肯定是不对的。 我还注意到,如果我使用ViewPager而不是带有水平方向LayoutManager的RecyclerView , BottomSheet根据需要响应垂直滑动事件。 是否还有其他一些LayoutManager , RecyclerView , BottomSheet Behavior或其他方法可以帮助将垂直滚动事件传播到BottomSheet Behavior ? 这里有一个问题的例子: https://github.com/timusus/bottomsheet-test (问题可以通过提交#f59a7031转载) 只需展开第一个底页。

BottomSheetDialogFragment – 允许滚动子项

我有一个带有RecyclerView的BottomSheetDialogFragment 。 问题是,我想禁用BottomSheetDialogFragment的拖动关闭function,只要RecyclerView没有向上滚动(目前我无法滚动我的RecyclerView因为尝试将始终关闭BottomSheetDialogFragment )。 任何想法如何实现这一目标?

Android – 在键盘上方显示BottomSheetDialogFragment

我正在尝试显示带有一些EditText字段的BottomSheetDialogFragment ,供用户输入信息。 我想直接在键盘上方显示它,但它会不断覆盖内容。 当我调出BottomSheetDialogFragment时会发生这种情况,您可以看到它正在选择Card Number EditText ,但覆盖其他内容。 理想情况下,这就是我正在寻找的,你可以看到EditTexts和View的填充。 我尝试了很多围绕windowSoftInputMode的解决方案,但似乎没有任何效果。 我已将它设置为父Activity adjustResize和实际的BottomSheetDialogFragment via dialog.window.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE) 而且我也尝试修改我的布局,将它从FrameLayout更改为ScrollView到CoordinatorLayout ,看看它是否对布局的位置有任何影响,但似乎没有任何效果。 如果有人知道如何做到这一点,那将非常感谢,谢谢。

使用支持库中的BottomSheet时如何调暗背景?

背景如何变暗,就像它在这里显示的一样? 我使用CoordinatorLayout和BottomSheetBehavior正常设置它。

了解BottomSheet行为折叠与隐藏

我有一个底部工作表,其高度和宽度设置为match_parent 。 因此,当按下按钮时,我将行为设置为STATE_EXPANDED如下所示: mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); 我的底片定义如下: 我正在使用BottomSheet Callbacks监视状态。 我点击一个按钮,底部工作表扩展到全屏。 它的当前状态是STATE_EXPANDED 我快速向下滑动底部纸张。 (完全拖动直到它关闭,简单向下滑动就像滚动一样) 它在中间停止,其状态记录为STATE_COLLAPSED 如果我再次滑动它会全部消失,其状态为STATE_HIDDEN 我不明白为什么它会停在中间。 如何通过一次滑动隐藏它。 我通过将peek_height设置为peek_height来0dp 。 这样,它永远不会遇到STATE_HIDDEN 。 隐藏时,其状态变为STATE_COLLAPSED 。 我只是不明白这种状态。 如何通过一次向下滑动来实现STATE_HIDDEN ?

Android:嵌套底部单击/拖动触摸事件问题

我有一个嵌套在另一个底部工作表内的底部工作表(使用BottomSheet布局行为的FrameLayouts ) 我还有几个’peek views’( FrameLayouts ),它们附加了点击监听器,在点击时分别展开底部工作表。 因此该应用程序基本上有3个主屏幕。 “主容器”,然后是第一个“底部薄片”,可以全屏展开,然后在第一个底部薄片的底部,是第二个底部薄片,也可以全屏展开。 问题: 当我将RecyclerView添加到嵌套的底部工作表’容器’视图时,拖动停止工作以进行第二个窥视视图(Sheet 2 Peek)。 如果我删除窥视视图ClickListener 或 RecyclerView ,事情似乎完全正常。 期望的结果: 两个底部工作表都应保持可拖动状态,并且应该可以单击窥视视图以展开其父底部工作表。 底部工作表应该像通常那样响应嵌套的滚动。 我尝试删除ClickListener并使用触摸手势,但我尝试过的任何东西似乎都没有帮助。 我正在使用v25.3.1的设计支持库,我能够在运行4.4.4库存的Galaxy S4和运行7.1.2库存的Nexus 6P上重现这个问题。 (我没有任何其他设备可用)。 我还在github上为有兴趣仔细研究的人创建了一个测试项目: https : //github.com/timusus/bottomsheet-test 这是一些展示布局的屏幕截图: 布局结构如下所示(为清晰起见,省略了一些代码): CustomBottomSheetBehavior只是BottomSheetBehavior一个简单子类,它可以防止第一个工作表在第二个工作表展开或拖动时拦截触摸事件。 这允许将第二张纸从“展开”拖动到“折叠”,而不会折叠第一张纸。 public class CustomBottomSheetBehavior extends BottomSheetBehavior { private boolean allowDragging = true; public void setAllowDragging(boolean allowDragging) { this.allowDragging = allowDragging; } @Override public boolean […]

防止在外面触摸时解雇BottomSheetDialogFragment

我已经实现了一个BottomSheet对话框,我希望当用户在偷看时(未完全展开状态)触摸底部外面时防止底片消失。 我设置了dialog.setCanceledOnTouchOutside(false); 在代码中但它似乎没有任何影响。 这是我的BottomSheetDialogFragment类: public class ShoppingCartBottomSheetFragment extends BottomSheetDialogFragment { private BottomSheetBehavior.BottomSheetCallback mBottomSheetBehaviorCallback = new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { if (newState == BottomSheetBehavior.STATE_HIDDEN) { dismiss(); } } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { } }; @Override public void setupDialog(Dialog dialog, int style) { super.setupDialog(dialog, style); […]

Android“Top Sheet”相当于“Bottom Sheet”?

我想要实现一种“Bottom Sheet”types的布局,但有一个扭曲,其中“底部”工作表将是一个MapFragment,它不能很好地作为向上/向下可拖动视图。 我有一个天真的想法是将逻辑“翻转”到“Top Sheet”设计,你可以向上/向下拖动Top Sheet以显示更多/更少的底部MapFragment。 即:从这…… ……到[类似]这个…… 这有可能是支持设计工具,还是我必须自己滚动这样的东西?

折叠工具栏布局不会在第一次展开,并且引脚不起作用

我的应用程序中有一个底页,我想在其中使用折叠工具栏布局。 但当我打开底部页面时,折叠工具栏布局将消失,我必须向下滚动才能看到它。 另一个问题是针对我想要成为滚动模式引脚的线性布局不起作用的引脚模式。 当我添加折叠工具栏布局时,我的底部工作表也不会打开全屏。 这是我的XML: 谢谢您的回答。