android - Android 应用程序 ImageView.Gone 在设备上不一致
问题描述
在 onResume 中,我得到了对需要更改可见性的小部件的引用。logcat 显示来自首选项的设置正确返回(show_images、show_titles、show_descriptions)。并且 logcat 显示 if else 正按照它应该落入每个 if else 语句中。但在设备上,大约 50% 的时间有些卡片会在启动时显示为空白。在更改首选项后,有些会显得完全空白,有些时候似乎工作正常。我从设备上尝试了 clean、cleanbuild 和 CleanUnInstall,但没有成功。这是在 onResume 中。在调用父 onResume 并获得首选项之后。
Log.i("INFO", show_images + "" + " "+ show_titles +" " + show_descriptions );
//force the layout to load before changing properties
try{
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
if(!show_images){
Log.i("INFO", "show images false");
image1.setVisibility(View.GONE);
image2.setVisibility(View.GONE);
image3.setVisibility(View.GONE);
image4.setVisibility(View.GONE);
image5.setVisibility(View.GONE);
} else{
Log.i("INFO", "show images true");
image1.setVisibility(View.VISIBLE);
image2.setVisibility(View.VISIBLE);
image3.setVisibility(View.VISIBLE);
image4.setVisibility(View.VISIBLE);
image5.setVisibility(View.VISIBLE);
}
if(!show_titles){
Log.i("INFO", "show titles false");
rTitle1.setVisibility(View.GONE);
rTitle2.setVisibility(View.GONE);
rTitle3.setVisibility(View.GONE);
rTitle4.setVisibility(View.GONE);
rTitle5.setVisibility(View.GONE);
}else{
Log.i("INFO", "show titles true");
rTitle1.setVisibility(View.VISIBLE);
rTitle2.setVisibility(View.VISIBLE);
rTitle3.setVisibility(View.VISIBLE);
rTitle4.setVisibility(View.VISIBLE);
rTitle5.setVisibility(View.VISIBLE);
}
if(!show_descriptions){
Log.i("INFO", "show desc false");
rDescription1.setVisibility(View.GONE);
rDescription2.setVisibility(View.GONE);
rDescription3.setVisibility(View.GONE);
rDescription4.setVisibility(View.GONE);
rDescription5.setVisibility(View.GONE);
}else{
Log.i("INFO", "show desc true");
rDescription1.setVisibility(View.VISIBLE);
rDescription2.setVisibility(View.VISIBLE);
rDescription3.setVisibility(View.VISIBLE);
rDescription4.setVisibility(View.VISIBLE);
rDescription5.setVisibility(View.VISIBLE);
}
}`
解决方案
不太清楚为什么....但是将布局从constraintLayout转换为linearlayouts。然后相同的 onResume 用于控制小部件的可见性。布局问题需要调整,但数据持久性按原样工作
推荐阅读
- php - codeigniter中模型中的未定义方法
- javascript - Videojs SET 视频端点
- batch-file - 如何通过按“q”使批处理文件随时提供菜单,而不必一遍又一遍地编写它?
- docker - 两个代理后面的 docker 注册表
- batch-file - 对于 /F 二进制 reg 值 neq(结果 = 总是成功)
- javascript - Node.js API - 来自多个客户端的重复数据请求
- r - 使用 stat_summary 时如何标准化使用 geom = "step" 绘制的不同曲线
- sql - SQL IF EXISTS 行为怪异
- asp.net-core - 为 .Net Core 2.1 配置 Identity、efcore 和 Dbcontext
- symfony - Symfony 4.1 转储不起作用