Интерфейс не обновляется на некоторых устройствах - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть приложение, которое имеет SlidingPaneLayout слева (по умолчанию скрыто) и основной макет в видимой части экрана.Элементы пользовательского интерфейса, такие как TextView s, значки (с использованием vectors) и SeekBar, отображаются в этом основном макете и обновляются в зависимости от взаимодействия с пользователем.Макет создан с использованием ConstraintLayout.

<com....SlidingPaneLayout
    layout_width="match_parent"
    layout_height="match_parent">

    <android.support.constraint.ConstraintLayout
        android:id="@+id/left_panel"
        layout_width="200dp"
        layout_height="match_parent">
        ...
    </android.support.constraint.ConstraintLayout>

    <android.support.constraint.ConstraintLayout
        android:id="@+id/main_layout"
        layout_width="match_parent"
        layout_height="match_parent">
       ...
        <ImageView
        android:id="@+id/iv_example_icon"
        app:srcCompat="@drawable/ic_icon" />
       ...
    </android.support.constraint.ConstraintLayout>

</com....SlidingPaneLayout>

В этом макете нет ничего странного.Компоненты обновляются с использованием таких методов, как setText, setImageResource и т. Д., Вызываемых из основного потока.Проблема в том, что на некоторых устройствах (последний случай на Samsung J3, Android 5.1.1) эти методы не работают (он работает на тысячах других устройств).Элемент щелкается, но содержимое не обновляется (например, изменение значка, когда пользователь касается значка).Он обновляется только после отображения SlidingPane (проведенного слева) или возобновления активности.Кто-нибудь знает, что может помешать приложению обновлять эти элементы?Это работало хорошо до нового обновления.Новое обновление принесло: ConstraintLayout, png background, vector icons.

Спасибо.

1 Ответ

0 голосов
/ 16 сентября 2018

Обнаружил проблему.Установка цвета с полупрозрачным на прозрачный решила проблему.

this.setSliderFadeColor(ContextCompat.getColor(context, android.R.color.transparent));

Однако я до сих пор не знаю причину этого.

...