gpt4 book ai didi

android - 当 ProgressBar 在 android 中可见时如何禁用用户交互?

转载 作者:IT王子 更新时间:2023-10-28 23:44:23 28 4
gpt4 key购买 nike

我正在使用自定义 ProgressBar。现在,在执行任务时,我正在显示进度条,但用户仍然可以与 View 和控件进行交互。如何在整个 View 上禁用用户交互,就像 ProgressDialog 一样,当它可见时。

我是否需要在主视图顶部使用透明 View 并在该 View 上显示进度条并在任务完成后隐藏该 View 。

或者只是获取我的 parentView 的 id 并将其设置为禁用?但是我将无法使背景变暗,就像在 View /Activity/fragment 上出现对话框时发生的情况一样。正确的?

我只想知道在进度条可见时禁止用户进行任何交互的方法。

谢谢

最佳答案

Your question: How to disable the user interaction while ProgressBar is visible in android?

要禁用用户交互,您只需添加以下代码

getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

要恢复用户交互,您只需添加以下代码

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);

Here is an example: Note:I am giving you just an example to show how to disable or retain user interaction

在你的 xml.Something 中添加一个进度条

<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/progressBar"
android:visibility="gone"/>

在 MainActivity 中,当按下按钮时,您会显示进度条并禁用用户交互。

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = (ImageView) findViewById(R.id.imageView);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mProgressBar.setVisibility(View.VISIBLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE,
WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
}
});
}

当用户 backPressed 你删除进度条时,再次保留用户交互。像这样的东西

  @Override
public void onBackPressed() {
super.onBackPressed();
mProgressBar.setVisibility(View.GONE);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
}

如果你想添加禁用和灰色显示的功能,你需要在你的 xml 布局文件中添加一个填充父级的线性布局。将其背景设置为#B0000000,将其visibilty 设置为GONE。然后以编程方式将其 visibility 设置为 VISIBLE

希望对您有所帮助!

关于android - 当 ProgressBar 在 android 中可见时如何禁用用户交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36918219/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com