gpt4 book ai didi

android - 开关按钮 - 点击工作但滑动开关在 android 中不起作用

转载 作者:太空狗 更新时间:2023-10-29 13:12:25 24 4
gpt4 key购买 nike

这是我的切换按钮代码 fragment 。

productChildViewHolder.switchBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
//Utility.displayToast("here");
//Is the switch is on?
boolean on = ((Switch) v).isChecked();
if (on) {
productVariant.setAvailable(1);
} else {
productVariant.setAvailable(0);
}

JSONObject jsonObject = new JSONObject();
try {
jsonObject.put("Type", "UPDATE_AVAILABLE");
jsonObject.put("ProductID", productVariant.getProductID());
jsonObject.put("VariantID", productVariant.getVariantID());
jsonObject.put("Available", productVariant.getAvailable());
new UpdateProductVariantTask().execute(jsonObject.toString());

} catch (JSONException e) {
e.printStackTrace();
}
}
});

对我来说,点击按预期工作。甚至点击切换按钮。但是滑动只是切换而已,并没有达到这个功能。

如何使切换按钮的滑动和点击以相同的方式工作?

最佳答案

setOnClickListener 替换为 setOnCheckedChangeListener
在你的监听器中检查 buttonView.isPressed() 是否被用户按下(并且没有被框架检测改变)

代码:

productChildViewHolder.switchBtn.setOnCheckedChangeListener(new OnCheckedChangeListener(

@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if(buttonView.isPressed() && isChecked){
//Your code here
}
}
});

为什么会这样-

ViewHolder 模式呈现“基础” View 并扩大更改以获得更好的性能。
不幸的是,android 开发人员实现得非常糟糕,并导致许多难以检测的奇怪问题。

我们的选择是什么?

如果可能 - 使用简单的 ListView 。
如果需求比较复杂会导致性能问题找开源库here .

关于android - 开关按钮 - 点击工作但滑动开关在 android 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38542043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com