多次使用自定义ToastDialog显示toast,显示过慢,无法立刻显示最新toast
使用自定义ToastDialog连续多次显示toast,toast连续显示时过慢,无法立刻显示最新toast,并且app卡顿,疑似线程阻塞。
请问是否有办法解决
鸿蒙
HarmonyOS
自定义
赞
收藏 0
回答 2
相关问题
HarmonyOS 自定义Toast显示,多了一个白色背景
1109浏览 • 1回复 待解决
HarmonyOS toast不显示问题
723浏览 • 1回复 待解决
HarmonyOS 如果显示类似Toast的提示
904浏览 • 2回复 待解决
HarmonyOS 如何自定义toast
952浏览 • 1回复 待解决
HarmonyOS 应用退到后台显示toast的方案
1556浏览 • 1回复 待解决
HarmonyOS 键盘和toast同时弹出时,键盘会把toast顶到上面,无法居中显示,如何不让键盘顶起toast
502浏览 • 1回复 待解决
HarmonyOS 如何自定义 toast 样式?
1031浏览 • 1回复 待解决
HarmonyOS 如何实现自定义Toast
683浏览 • 1回复 待解决
鸿蒙组件toast自定义样式
9834浏览 • 1回复 待解决
HarmonyOS 如何自定义toast组件
907浏览 • 1回复 待解决
HarmonyOS如何实现自定义dialog多次弹出并显示不同内容?
882浏览 • 1回复 待解决
HarmonyOS 在有键盘的页面,Toast显示位置错误
964浏览 • 1回复 待解决
HarmonyOS ContextMenu中的item点击不显示toast
545浏览 • 1回复 待解决
HarmonyOS 使用全局自定义弹窗的时候,toast失效
709浏览 • 1回复 待解决
HarmonyOS 异步操作中不显示设置了显示于应用之上的toast
840浏览 • 1回复 待解决
HarmonyOS如何修改promptAction.showToast显示的toast样式?
1295浏览 • 1回复 待解决
HarmonyOS 使用RichEditor 自定义控件不显示
1243浏览 • 1回复 待解决
HarmonyOS toast(promptAction)的自定义页面问题
998浏览 • 1回复 待解决
HarmonyOS 文本怎么自定义识别高亮显示和自定义点击事件显示菜单/气泡?
1196浏览 • 1回复 待解决
HarmonyOS 自定义Dialog显示问题
1273浏览 • 1回复 待解决
HarmonyOS CustomDialog确定按钮回调函数中不显示Toast
1052浏览 • 1回复 待解决
在悬浮窗场景下使用@ohos.promptAction展示Toast提示显示位置异常
1074浏览 • 1回复 待解决
HarmonyOS tabbar无法自定义显示一个固定UI
609浏览 • 1回复 待解决
Toast弹窗是否支持自定义背景或者字体颜色
2967浏览 • 1回复 待解决
HarmonyOS 自定义弹窗不能显示问题
885浏览 • 1回复 待解决
DialogToast的消失时间是可以设置的
你可以在dialogToast里面设置他的消失时间,最好跟你的线程绑定一下,也可以给你的线程一个睡眠时间,时间的大小与弹窗的消失时间一致就可以了。
可以试下以下代码,本地测试OK:
public class Toast {
private static final int TEXT_SIZE = 40;
private static final int TEXT_PADDING = 20;
private static final int TEXT_HEIGHT = 100;
private static final int TEXT_CORNER = 20;
private static final int TEXT_OFFSETY = 200;
private static final int TEXT_ALPHA = 120;
private Toast() {}
/**
* 吐司
*
* @param context the context
* @param text the toast content
* @param ms the toast ime,ms
*/
public static void show(Context context, String text, int ms) {
DependentLayout layout = new DependentLayout(context);
layout.setWidth(ScreenUtils.getScreenWidth(context));
layout.setHeight(TEXT_HEIGHT);
Text textView = new Text(context);
ShapeElement background = new ShapeElement();
background.setCornerRadius(TEXT_CORNER);
background.setRgbColor(new RgbColor(0, 0, 0, TEXT_ALPHA));
textView.setBackground(background);
DependentLayout.LayoutConfig config =
new DependentLayout.LayoutConfig(
DependentLayout.LayoutConfig.MATCH_CONTENT, DependentLayout.LayoutConfig.MATCH_CONTENT);
config.addRule(DependentLayout.LayoutConfig.HORIZONTAL_CENTER);
textView.setLayoutConfig(config);
textView.setPadding(TEXT_PADDING, TEXT_PADDING, TEXT_PADDING, TEXT_PADDING);
textView.setMaxTextLines(1);
textView.setTextSize(TEXT_SIZE);
textView.setMaxTextWidth(ScreenUtils.getScreenWidth(context));
textView.setTextColor(Color.WHITE);
textView.setText(text);
layout.addComponent(textView);
ToastDialog toastDialog = new ToastDialog(context);
toastDialog.setContentCustomComponent(layout);
toastDialog.setTransparent(true);
toastDialog.setOffset(0, TEXT_OFFSETY);
toastDialog.setSize(ScreenUtils.getScreenWidth(context), TEXT_HEIGHT);
toastDialog.setDuration(ms);
toastDialog.show();
}
}
使用方法:Toast.show()