gpt4 book ai didi

android - 我们可以在 fragment 中覆盖 dispatchTouchEvent(MotionEvent me) 吗?

转载 作者:行者123 更新时间:2023-11-30 02:01:09 24 4
gpt4 key购买 nike

当我在 fragment 中重写这个方法时,它会显示类似这样的错误

未定义 Fragment 类型的 dispatchTouchEvent(MotionEvent) 方法

这是我创建的 fragment ......

public class ChatterContainerFragment extends Fragment implements
SimpleGestureListener {
}

在此我试图覆盖...

@Override
public boolean dispatchTouchEvent(MotionEvent me) {
// Call onTouchEvent of SimpleGestureFilter class
this.detector.onTouchEvent(me);
return super.dispatchTouchEvent(me);
}

当我在 FragmentActivity 中覆盖时,它工作正常。但对于 fragment ,它不起作用。

请帮帮我。

谢谢!

最佳答案

有两种方法,

1) 您可以在创建 View 后在 fragment View 上添加一个TouchListener。这是最简单的方法。

2) 您知道 Fragments 附加到 Activity,因此您可以覆盖 Activity 中的 dispatchTouchEvent 方法并从那里传递操作.像这样,

@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
MyFragment myFragment = (MyFragment) getFragmentManager().findFragmentByTag("FRAGMENT_TAG");
myFragment.doSomething();

return super.dispatchTouchEvent(ev);
}

更新

您需要这样做才能从 Activity 访问 Dragment 方法,

ExampleFragment fragment = (ExampleFragment) getFragmentManager().findFragmentById(R.id.example_fragment);
fragment.<specific_function_name>();

关于android - 我们可以在 fragment 中覆盖 dispatchTouchEvent(MotionEvent me) 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com