仅在按住按钮时显示对话框碎片

时间:2016-10-02 19:04:21

标签: java android android-layout android-fragments android-dialogfragment

我想在片段中显示一个对话片段,但只有在按住按钮时,才会在用户释放触摸时受到影响。但是当我显示dialogfragment时,它会从按钮中移除焦点,并且在发布时不会被解除。无论如何这是我到目前为止所尝试的:

        c1b1= (Button) v.findViewById(R.id.card_b1);
        c1b1.setOnTouchListener(new View.OnTouchListener()
        {
            public boolean onTouch(View v, MotionEvent event)
            {
                Rdialog_Fragment dialogFragment = new Rdialog_Fragment ();
                FragmentManager fm = r2_fragment.getFragmentManager();
                if(event.getAction() == MotionEvent.ACTION_DOWN){

                   // Rdialog_Fragment dialogFragment = new Rdialog_Fragment ();
                    dialogFragment.show(fm, "Sample Fragment");
                }
                if(event.getAction() == MotionEvent.ACTION_UP){
                    dialogFragment.dismiss();
                }
                return false;

            }

enter image description here 任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

此功能称为3DTouch效果,您可以使用Shalskar的以下实现,称为PeekAndPop。

您可以在repository on Github.

中找到该库及所需说明

答案 1 :(得分:0)

以这种方式显示UI的标准方式可以通过PopupWindow.实现。但是我不确定焦点,因为这也可能从当前视图中释放焦点。试试吧。

您可以通过在创建时在片段布局顶部添加视图或者在片段xml中添加视图,但最初将其可见性属性设置为INVISIBLE,还可以执行其他操作。一旦检测到按下事件,将其可见性属性设置为VISIBLE,一旦检测到释放事件,再次将此视图设置为INVISIBLE。这样,焦点可能无法从当前视图中自动清除。