Android-приложение ImageView. Не работает на устройстве - PullRequest
0 голосов
/ 30 октября 2019

В 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);
    }
}`

1 Ответ

0 голосов
/ 30 октября 2019

Не совсем уверен, почему .... но преобразовал раскладки из constraintLayout в linearlayouts. затем тот же onResume работал, чтобы контролировать видимость виджетов. Необходимы корректировки для проблем с макетом, но постоянство данных работало так, как если бы оно было

...