在一个对话框片段中,当我使用一个进度条(不是进度对话框),我想完成一个任务,然后允许用户交互。使用进度条可以通过setCancelable(false)来实现,但是如何使用进度条来实现呢?(因为,getWindow()函数在对话框片段中不能工作)。
先谢谢你 :)
我不建议你这样做,因为进度条的想法是向用户展示一些事情正在进行,但它不应该与他们可以与屏幕互动的事实有关。(这也是ProgressDialog被废弃的原因之一,鼓励不要在加载东西的时候屏蔽UI)。
除此之外,回答你的问题,getWindow可以从activity中调用,你可以使用requireActivity().getWindow()或者getActicity().getWindow()在你的对话框片段中检索activity,并设置相应的params来禁止用户操作。
你可以简单地添加 isLoading
boolean标志,并禁止在该标志为 true
,工作完成后,将该标志设置为 false