我有一个包含多个片段的应用程序
对于每个片段,我想在触摸片段时执行一些操作
我有一个为我绘制位图的片段,我希望这个片段在触摸时全屏显示 该片段具有将其设置为位图的图像视图 我尝试在视图的片段中设置OnTouchListener,但我不希望这样,因为每次用户按下屏幕时,即使它已经全屏显示,它也将启动活动 如何在片段
的主要活动中添加OnTouchListener这是我的代码
主要活动我正在做这个
public class MainActivity extends Activity {
DrawBitmap drawView;
drawView = (DrawBitmap ) getFragmentManager().findFragmentById(R.id.drawid);
}
在 DrawBitmap 类中,这是我的片段
public class DrawBitmap extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.imgid, container, true);
v.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
switch(action){
case MotionEvent.ACTION_DOWN:
Intent intent = new Intent(getActivity(), SecondActivity.class);
startActivity(intent);
break;
}
return false;
}
});
return v;
}
}
SecondActivity 中的
public class SecondActivity extends Activity {
DrawBitmap drawView;
drawView = (DrawBitmap ) getFragmentManager().findFragmentById(R.id.drawid_full);
}
我希望能够在主要活动
中为OnTouchListener
添加drawView
答案 0 :(得分:0)
片段不是视图,您无法直接在其上添加此类侦听器。
解决方案是覆盖“按下键”样式方法钩子并抛出自己的事件。不幸的是,片段也没有这个钩子。
因此,最后一个应该完美工作的选项是在方法getView()
(即片段的根视图)中片段返回的视图上添加侦听器。然后,您将不得不在树视图层次结构中处理一些事件消耗,但它应该可以工作。