iamxxyu 2015-08-11 14:38 采纳率: 0%
浏览 3762

android.support.v7.widget.SwitchCompat的一个疑似BUG问题

使用了这个的兼容包控件替换switch,因为是放在listview里面,所以之前也已经解决了viewholder造成的switch错乱问题,但是仅仅是把控件由switch换成SwitchCompat,发现拉动listview就出现了控件错乱了,而换回switch又完全没有问题。请问有人遇到过这样的问题吗?难道还是要老老实实用回switch ,MD设计兼容包的控件还是存在一些BUG?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 05:00
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可能是因为在使用android.support.v7.widget.SwitchCompat时,你没有正确地设置它的属性和行为。例如,如果你不正确地设置了开关的状态监听器(onCheckedChangeListener),那么它可能会导致错误的行为。

    以下是一个可能导致的问题示例:

    <SwitchCompat
        android:id="@+id/switch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center_vertical"
        android:checked="false" />
    

    在这个例子中,我们设置了一个未被正确处理状态切换的开关。如果你想让开关能够根据用户的点击状态进行变化,你需要设置一个状态监听器,并将此监听器传递给开关。

    SwitchCompat switchCompat = findViewById(R.id.switch);
    switchCompat.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // 根据用户的选择改变开关的状态
            if (isChecked) {
                // 如果是打开状态,则执行相应操作
            } else {
                // 如果是关闭状态,则执行相应操作
            }
        }
    });
    

    解决这个问题的方法是确保你的开关具有正确的状态监听器,并且这些监听器能够正确地响应开关的状态更改。如果你不确定如何实现这一点,请查阅相关的Android文档或参考代码示例以获取更多信息。

    评论

报告相同问题?