我有一个带有可触摸或可点击布局的片段,我不知道为什么当我触摸片段的布局并留下我的手指功能“”retrieveMQTTConnAssets()“”被触发两次“当我触摸表面并保持触摸时我第二次离开手指“
pease et meknow hw避免这种行为。
更新:
Actuay,我现在解决了它,而不是返回true,我返回false。但是我不明白,为什么会这样。
码
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.w(TAG, "@onCreateView()");
View root = inflater.inflate(R.layout.eco_frag, container, false);
root.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//Toast.makeText(getActivity().getApplicationContext(), "toched", Toast.LENGTH_SHORT).show();
retrieveMQTTConnAssets();
return true;
}
});
return root;
}
答案 0 :(得分:3)
问题很简单,就是那个
root.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//this is called, right?
retrieveMQTTConnAssets();
return true;
}
});
<{1>}中的,您会收到一个名为onTouch
的参数。 MotionEvent
存储名为MotionEvent
的内容,其中包含许多值(请参阅reference),但最重要的是action
和ACTION_DOWN
。
如果你想让它只在你发布它时才运行,那么你应该检查一下这种行为。
ACTION_UP