android – 显示加载指示符时禁用所有触摸

前端之家收集整理的这篇文章主要介绍了android – 显示加载指示符时禁用所有触摸前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个简单的主要布局,然后我添加一个片段布局,只显示加载在该主布局之上的指示器.问题是我仍然可以按下加载指示器后面的按钮.

无论如何禁用触摸所以它不会传递到后面?我不想一个接一个地禁用主屏幕上的每个按钮.

解决方法

您可以在包含ProgressBar的布局中将“可单击”属性设置为“true”:
<FrameLayout 
    android:id="@+id/progressBarContainer"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:clickable="true" >

    <ProgressBar
        android:id="@+id/progressBar" 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_gravity="center" />

</FrameLayout>

然后,当ProgressBar可见时,其容器(填充整个屏幕虽然它不可见)将拦截任何点击事件,以便在您的ProgressBar显示时它们不会落入底层布局.

要使用此功能,请在要显示ProgressBar时执行此操作:

findViewById(R.id.progressBarContainer).setVisibility(View.VISIBLE);

然后在完成后执行此操作:

findViewById(R.id.progressBarContainer).setVisibility(View.INVISIBLE);

例如,如果您在AsyncTask中使用它,则可以在onPreExecute()中使其可见,然后在onPostExecute()中使其不可见.

猜你在找的Android相关文章