1

我想在片段中顯示對話框片段,但僅在按住按鈕時才顯示,以便在用戶釋放觸摸時變暗。但是,當我顯示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 任何幫助表示讚賞。

+0

一旦你在Fragment/Activity之上打開Fragment/DialogFragment,它會自動將焦點從當前打開的Fragment/Activity移動到新打開的Fragment/DialogFragment。 – EEJ

+0

有沒有辦法預防這種情況? – kluki

+0

這取決於你想要達到的目標。你可以添加一些圖形/屏幕截圖,說明你想要什麼? – EEJ

回答

0

顯示像這樣的用戶界面的標準方法所需要的指令可以通過PopupWindow.可以實現但是我不知道焦點,因爲這也可能會釋放來自當前焦點視圖。去嘗試一下。

在創建時通過在片段佈局頂部添加視圖,或者通過在片段xml中添加視圖,但最初將可見性屬性設置爲INVISIBLE,可以做更多的事情。一旦檢測到按下事件集合,它就是VISIBLE的可見性屬性,並且一旦檢測到釋放事件,請再次將此視圖設置爲INVISIBLE。這樣焦點可能不會從當前視圖自動清除。

+0

Popupwindow工作。 如果任何人有相同的問題使用poupwindow並將焦點設置爲false,可悲的是你不能用dialogfragments – kluki

0

此功能稱爲3DTouch效果,您可以使用Shalskar的以下實現,稱爲PeekAndPop。

您可以找到庫,並在其repository on Github.