调用 show() 和 dismiss() 方法时不显示自定义加载视图
Custom loading view not showing on calling show() and dismiss() method
我正在尝试在用户点击上传以显示加载时实现自定义加载视图。调用 show() 时,它工作正常,但调用 dismiss() 时。什么都没显示
我已经完成所有谷歌搜索并在 Whosebug 上搜索了类似的问题
public void onClick(View v) {
switch (v.getId()){
case R.id.socialMediaShareImage:
getImageFromStorage();
break;
case R.id.socialMediaShareButton:
catLoadingView.show(getSupportFragmentManager(),"");
//loadingDialog = LoadingDialog.Companion.get(SocialMediaActivity.this).show();
uploadImageToServer();
catLoadingView.dismiss();
break;
default:
Log.i("ERROR INSWITCH","id mismatch");
}
}
When clicking on share button the loading view appear and dismiss after executing the uploadImageToServer() method.
据我了解,方法 uploadImageToServer()
执行一些与网络相关的操作。如果是这样,您应该在非 UI 线程上进行。此外,在您的代码中 catLoadingView.dismiss();
不会等到您的异步过程完成后立即隐藏加载视图。您应该使用一些回调方法来修复您的上传过程完成,然后关闭您的视图。
看起来像这样:
您的回调接口:
interface MyCallback {
void onUploaded();
}
您的上传方式:
void upload(MyCallback callback) {
// some async process on non-UI thread
callback.onUploaded();
}
最后调用你的方法:
case R.id.socialMediaShareButton:
catLoadingView.show(getSupportFragmentManager(),"");
//loadingDialog = LoadingDialog.Companion.get(SocialMediaActivity.this).show();
uploadImageToServer(new MyCallback() {
runOnUiThread {
catLoadingView.dismiss();
}
});
break;
我正在尝试在用户点击上传以显示加载时实现自定义加载视图。调用 show() 时,它工作正常,但调用 dismiss() 时。什么都没显示
我已经完成所有谷歌搜索并在 Whosebug 上搜索了类似的问题
public void onClick(View v) {
switch (v.getId()){
case R.id.socialMediaShareImage:
getImageFromStorage();
break;
case R.id.socialMediaShareButton:
catLoadingView.show(getSupportFragmentManager(),"");
//loadingDialog = LoadingDialog.Companion.get(SocialMediaActivity.this).show();
uploadImageToServer();
catLoadingView.dismiss();
break;
default:
Log.i("ERROR INSWITCH","id mismatch");
}
}
When clicking on share button the loading view appear and dismiss after executing the uploadImageToServer() method.
据我了解,方法 uploadImageToServer()
执行一些与网络相关的操作。如果是这样,您应该在非 UI 线程上进行。此外,在您的代码中 catLoadingView.dismiss();
不会等到您的异步过程完成后立即隐藏加载视图。您应该使用一些回调方法来修复您的上传过程完成,然后关闭您的视图。
看起来像这样:
您的回调接口:
interface MyCallback {
void onUploaded();
}
您的上传方式:
void upload(MyCallback callback) {
// some async process on non-UI thread
callback.onUploaded();
}
最后调用你的方法:
case R.id.socialMediaShareButton:
catLoadingView.show(getSupportFragmentManager(),"");
//loadingDialog = LoadingDialog.Companion.get(SocialMediaActivity.this).show();
uploadImageToServer(new MyCallback() {
runOnUiThread {
catLoadingView.dismiss();
}
});
break;