【问题标题】:Make user interaction inactive while progress bar is visible在进度条可见时使用户交互处于非活动状态
【发布时间】:2020-06-17 06:18:30
【问题描述】:

在对话框片段中,当我使用进度条(不是进度对话框)时,我想完成一项任务,然后允许用户交互。可以通过使用 setCancelable(false) 通过进度对话框来实现,但是如何使用进度条来实现呢? (因为 getWindow() 函数在对话框片段中不起作用)。

提前谢谢你 :)

【问题讨论】:

  • 在 DialogFragment 中,您在 onCreateView() 方法中扩展视图,因此您可以在那里传递布局,然后与视图交互。

标签: android android-dialogfragment android-progressbar


【解决方案1】:

我不建议你这样做,因为进度条的想法是向用户显示正在发生的事情,但它不应该与他们可以与屏幕交互的事实有任何关系。 (这就是 ProgressDialog 被弃用的原因之一,以鼓励在加载某些内容时不要阻塞 UI)。

除此之外,回答您的问题,getWindow 可以从活动中调用,您可以使用 requireActivity().getWindow() 或 getActicity().getWindow() 在对话框片段中检索活动,并将参数设置为禁用用户操作。

【讨论】:

    【解决方案2】:

    您可以简单地添加isLoading布尔标志,并在该标志为true时禁止所有交互,并在工作完成后将该标志设置为false

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-28
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      相关资源
      最近更新 更多