当前位置: 首页 > 知识库问答 >
问题:

根据片段可见性自动禁用/启用侦听器

竺勇
2023-03-14

在Android应用程序中,我有两个片段:

>

  • 具有项目列表视图的片段

    带有ImageView的片段

    通过回调onListItemSelected,当用户单击ListView项目时,Mainactive将ImageView推送到堆栈上,带有图像的片段出现在屏幕上。此时,我预计由于ListView片段不再可见,因此不再触发与此片段关联的任何事件。事实并非如此。如果我触摸ImageView,ListView项目的侦听器仍然会触发。

    两个问题:

    >

  • 有没有一种方法可以根据它们的片段可见性自动启用/禁用侦听器?

    如果没有,我想应该禁用ListView片段视图,然后在按下backButton时重新启用它。如何在MainActivity中捕获backButton事件以重新启用以前禁用的视图?

    公有类MainActive扩展FragmentActive实现ListViewFraank。回调{

    […]

           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);
    
           }
    
  • 共有1个答案

    於宾白
    2023-03-14

    你可以尝试两件事

    >

  • 将ImageView设置为使用触摸事件。

    图像视图。设置可点击(true)

    推送新片段时,在ListView上禁用触摸事件。

    ListView.setClickable(false);

    如果您想知道如何知道带有ImageView的片段何时被删除,请尝试setTargetFraank。看这里:https://stackoverflow.com/a/13733914/935421

  •  类似资料:
    • 我有一个依赖于 SwitchPreference 的自定义 。 有没有办法监听它所依赖的开关的启用/禁用? 我能找到的最接近的监听器是,但这当然是针对偏好值的实际更改,而不是状态。

    • 我目前正在为一个包含大量模块的大项目创建TestNG测试用例。现有的大多数单元测试实际上都是集成测试,因为它们非常依赖于/opt文件夹中的配置文件以及正在运行的数据库和消息队列。 为了使事情进一步复杂化,测试用例使用配置位于resources/meta-inf/services/org.TestNG.itestnglistener文件中的TestNG侦听器。这个文件中的侦听器触发所有测试用例(正如

    • 我所拥有的 我不能使用onResume(),因为左边和右边的片段已经创建了。我不能使用setUserVisibilityHint(),因为它是在onCreateView()之前调用的,所以视图还没有准备好。 那么,当某个特定片段对用户可见时,应该采用什么方法来动画视图呢?

    • 我们在这个项目上有一个微服务架构,我们使用普罗米修斯和格拉法纳进行监控。这些服务是使用Spring启动实现的,并且通过Spring启动执行器与普罗米修斯集成。该项目中有一些Kafka消费者,并且对于每个@KafkaListenerSpring都会生成一些指标。下面是用于指标的普罗米修斯时间序列 < code > org . spring framework . Kafka . kafkaliste

    • 通常在片段中,我在onAttach()中附加一个监听器,并在onDetach()中取消监听器。 是否需要在onDetach()中将侦听器设置为null? 虽然我这样做是因为它使代码看起来更加对称,但似乎没有必要这样做,因为片段已经被销毁了,因为根据片段的生命周期,之前已经调用了onDestroyView()和onDestroy()。 提前谢谢。

    • 显示或隐藏左上角的 性能监控 组件。在使用这个API之前,需要先在HTML页面的 <header> 部分引入stats.min.js <header>         <script src="stats.min.js"></script> </header> controller.enableStats(); controller.disableStats();