我想在片段中显示一个对话片段,但只有在按住按钮时,才会在用户释放触摸时受到影响。但是当我显示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;
}
答案 0 :(得分:0)
此功能称为3DTouch效果,您可以使用Shalskar的以下实现,称为PeekAndPop。
中找到该库及所需说明答案 1 :(得分:0)
以这种方式显示UI的标准方式可以通过PopupWindow.实现。但是我不确定焦点,因为这也可能从当前视图中释放焦点。试试吧。
您可以通过在创建时在片段布局顶部添加视图或者在片段xml中添加视图,但最初将其可见性属性设置为INVISIBLE,还可以执行其他操作。一旦检测到按下事件,将其可见性属性设置为VISIBLE,一旦检测到释放事件,再次将此视图设置为INVISIBLE。这样,焦点可能无法从当前视图中自动清除。