开关不会更新Android 5.1.1的UI

时间:2019-01-18 15:27:11

标签: java android androidx android-5.1.1-lollipop

我在Switch上有以下xml

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">

    <androidx.appcompat.widget.SwitchCompat
    android:id="@+id/swtich"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:checked="true"
    android:clickable="true"
    android:focusable="true"
    android:theme="@style/Color1SwitchStyle" />

触摸开关后,UI不会更新以显示开关的当前状态。后台的侦听器将接听触摸事件,好像它确实发生了一样,并以编程方式检查开关的当前状态将显示它已被更新,但UI元素未更改。

我相信它可能与Androidx有关,因为使用它的其他元素(仅在Android 5.1.1上)会发生同样的问题。低于和高于此的Android版本似乎可以正常工作。切换片段会导致交换机在新片段打开之前闪烁到正确的状态。

Gradle.build文件如下:

implementation 'androidx.multidex:multidex:2.0.0'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.android.material:material:1.1.0-alpha01'

好奇的人的听众:

Switch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            Switch.setChecked(isChecked);
            Switch.requestLayout();
            Switch.refreshDrawableState();
        }
    });

好像这个人有一个类似的问题,但是看到由于交换机未使用适配器,我无法应用推荐的修复程序:RecyclerView doesn't update UI on Android 5.1.1

有人遇到过这个问题吗?

0 个答案:

没有答案