Android 根据侦听器的片段可见性自动禁用/启用侦听器
在Android应用程序中,我有两个片段:Android 根据侦听器的片段可见性自动禁用/启用侦听器,android,android-fragments,listener,android-fragmentactivity,onitemclicklistener,Android,Android Fragments,Listener,Android Fragmentactivity,Onitemclicklistener,在Android应用程序中,我有两个片段: 带有项目列表视图的片段 带有图像视图的片段 通过callback onListItemSelected,当用户单击ListView项时,MainActivity将ImageView推送到堆栈上,带有图像的片段显示在屏幕上。在这一点上,我希望,由于ListView片段不再可见,因此与此片段关联的任何事件都不再触发。事实并非如此。如果我触摸ImageView,ListView项的侦听器仍会启动 两个问题: 是否有一种方法可以根据片段可见性自动启用/禁用侦听
public void onListItemSelected(String str) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.listView, f);
fragmentTransaction.commit();
// disable listView
//View lw = getSupportFragmentManager().findFragmentById(R.id.listView).getView().findViewById(R.id.my_listView);
//lw.setEnabled(false);
}
你可以尝试两件事
ImageView.setClickable(true);
ListView.setClickable(false);
如果您想知道如何知道何时删除带有ImageView的片段,请尝试setTargetFragment。请查看此处:我决定使用第一种解决方案,因为我没有设法使第二种解决方案正常工作。ImageView现在无法单击。但是,我注意到一些奇怪的情况。如果我用多个手指点击ImageView,有时会显示此信息出现在LogCat中:“在UnsetPressedState之前停止操作。调用mUnsetPressedState.run()”。但它似乎不会产生任何问题。