В onResume я получаю ссылки на виджеты, для которых мне нужно изменить видимость. LogCat показывает, что настройки из префов возвращаются правильно (show_images, show_titles, show_description). И logcat показывает, что if else попадает в каждый из операторов if else как следует. Но на устройстве 50% времени или около того некоторые карты будут пустыми при запуске. Некоторые из них будут казаться совершенно пустыми после смены преф, а иногда кажется, что они работают нормально. Я попробовал чистую, 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);
}
}`