我在片段中有一个TextView,我想在检测到手势时设置不同的文本。
@Override
public boolean onTouchEvent(MotionEvent event) {
this.gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
上面的代码用于监听手势,但它只能以某种方式在Activity类中使用,当我将.onTouchEvent()
放入片段类时,它表示无法解析方法。
任何想法我如何操纵片段外部的视图或任何基本上像我在Activity类中所做的那样的手势?
答案 0 :(得分:1)
如果您没有其他课程潜入您的片段视图并访问它,那将是更好的封装。相反,让您的片段公开一个方法来执行您想要的操作,并保持对视图中本地视图内部内容的具体知识。 如果这种方法存在障碍,请提出建议,并且可能有一种模式可以帮助您解决问题。
答案 1 :(得分:1)
对于新问题: 片段本身没有onTouchEvent,但任何View都有。因此,覆盖Fragment的onCreateView以查找有问题的TextView并向其添加onTouchEvent。您的onCreateView可能只调用了super(),或者您可以自己调用Inflater或其他任何东西,但这里是使用super的(未经测试的)样本:
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View myView = super(inflater, container, savedInstanceState);
TextView myTextView = myView.findViewById(R.id.my_text_view);
myTextView.setOnTouchListener(new TextView.OnTouchListener(
// body of listener here...
);
}