资讯专栏INFORMATION COLUMN

如何禁止使用bottomsheetdialogfragment拖动?

joyqi / 1812人阅读

摘要:代码如下这个地方的是一个简单的布局你会得到下面的输出原文地址

myactivity代码如下:

 public class MyActivity extends AppCompatActivity {

        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_my);

            new MyBottomSheetFragment().show(getSupportFragmentManager(), "tag");
        }

        public static class MyBottomSheetFragment extends BottomSheetDialogFragment {

            @Override
            public Dialog onCreateDialog(Bundle savedInstanceState) {
                BottomSheetDialog bottomSheetDialog = (BottomSheetDialog) super.onCreateDialog(savedInstanceState);
                bottomSheetDialog.setContentView(R.layout.sample);

                try {
                    Field mBehaviorField = bottomSheetDialog.getClass().getDeclaredField("mBehavior");
                    mBehaviorField.setAccessible(true);
                    final BottomSheetBehavior behavior = (BottomSheetBehavior) mBehaviorField.get(bottomSheetDialog);
                    behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
                        @Override
                        public void onStateChanged(@NonNull View bottomSheet, int newState) {
                            if (newState == BottomSheetBehavior.STATE_DRAGGING) {
                                behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
                            }
                        }

                        @Override
                        public void onSlide(@NonNull View bottomSheet, float slideOffset) {
                        }
                    });
                } catch (NoSuchFieldException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }

                return bottomSheetDialog;
            }
        }
    }

这个地方的r.layout.sample是一个简单的布局:




    

    

    


你会得到下面的输出:

原文地址:http://www.apkbus.com/blog-91...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/14110.html

相关文章

  • 仿知乎分享界面

    摘要:偶然看到知乎的分享界面做得不错,拿到我这个项目中正合适,在网上查了一下资料,使用结合系统自带的分享功能就可以做到它的效果。 前言 最近在做一个资讯类的APP,上面需要一个分享功能,项目不大,如果去使用官方的SDK还需要审查之类的,感觉太麻烦。偶然看到知乎的分享界面做得不错,拿到我这个项目中正合适,在网上查了一下资料,使用BottomSheetDialogFragment结合系统自带的分...

    bang590 评论0 收藏0
  • 浏览器拖动API全解析

    摘要:前言拖动是添加的提供了元素拖动的原生支持拖动相对于其他的事件复杂了一些原因就在于拖动是被拖动元素与被放置元素的互动涉及到了两个元素而不是一个导致流程的复杂但是其中的很多设计是有规律可循的现在我们来看一个基本的使用场景这里有两个元素和是可拖动 前言 拖动api是HTML5添加的API,提供了元素拖动的原生支持 拖动API相对于其他的事件API复杂了一些,原因就在于拖动是被拖动元素与被放置...

    VioletJack 评论0 收藏0
  • 浏览器拖动API全解析

    摘要:前言拖动是添加的提供了元素拖动的原生支持拖动相对于其他的事件复杂了一些原因就在于拖动是被拖动元素与被放置元素的互动涉及到了两个元素而不是一个导致流程的复杂但是其中的很多设计是有规律可循的现在我们来看一个基本的使用场景这里有两个元素和是可拖动 前言 拖动api是HTML5添加的API,提供了元素拖动的原生支持 拖动API相对于其他的事件API复杂了一些,原因就在于拖动是被拖动元素与被放置...

    MudOnTire 评论0 收藏0
  • 前端碎语(5)

    摘要:禁止用户选择文字在一些应用场合,我们不希望用户能够选择文字。在下使用透明效果虽然已经停止对的技术支持了,然而做前端的还得被它恶心一段时间,有些兼容性的问题是我们仍要面对滴。但是,前端界被虐了这么多年,解决问题的方法总是有的。 禁止用户选择文字 在一些应用场合,我们不希望用户能够选择文字。比如在拖动交互中,如果用户能选择元素内部的文字,也就意味着能拖动它们,这样就会干扰对元素的拖动、影响...

    xiaoqibTn 评论0 收藏0
  • 前端碎语(5)

    摘要:禁止用户选择文字在一些应用场合,我们不希望用户能够选择文字。在下使用透明效果虽然已经停止对的技术支持了,然而做前端的还得被它恶心一段时间,有些兼容性的问题是我们仍要面对滴。但是,前端界被虐了这么多年,解决问题的方法总是有的。 禁止用户选择文字 在一些应用场合,我们不希望用户能够选择文字。比如在拖动交互中,如果用户能选择元素内部的文字,也就意味着能拖动它们,这样就会干扰对元素的拖动、影响...

    xialong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<