LillteZheng/FlowHelper

LabelFlowLayout 第0个选择bug

Closed this issue · 14 comments

LabelFlowLayout 如果设置不选中0个,比如设置 flowLayout.setSelects(10);
这时候第0个无法选择,点击没有任何反应

com.zhengsr.tablib.view.flow.LabelFlowLayout
if (mLastPosition != position)
貌似判断逻辑不太对

建议在调用setSelects 后需要更新mLastPosition

临时解决方案
新建MyLabelFlowLayout extends com.zhengsr.tablib.view.adapter.LabelFlowAdapter
后重写这个方法
`@Override
public void setSelects(Integer... indexs) {
if (indexs != null && indexs.length > 0) {
for (int i = 0; i < indexs.length; i++) {
for (int j = 0; j < getChildCount(); j++) {
View view = getChildAt(j);
if (j == indexs[i]) {
mLastPosition = j;//添加这段代码
view.setSelected(true);
break;
}
}
}

    }
}`

你好,请问复现代码能贴上来吗?我这边没复现到

你好,请问复现代码能贴上来吗?我这边没复现到

是这样的,由A界面进入B界面,B界面是用的LabelFlowLayout ,在进入B界面我会根据用户先前保存的选择,进行回显默认选择,比如进入页面初始化LabelFlowLayout后调用 flowLayout.setSelects(10);
这时候确是第10个标签是选中,但这时候去选择第0个标签的时候是选不了的,但选择其他后,第0个又可以选择了

LabelFlowLayout 是单选还是多选的状态呢?setSelects 也未回调 onItemSeleted 这个方法,等会我也更新一下

复现到了,我晚点更新一下

你好,更新到最新版即可。感谢反馈

LabelFlowLayout 是单选还是多选的状态呢?setSelects 也未回调 onItemSeleted 这个方法,等会我也更新一下

单选状态下的

你好,更新到最新版即可。感谢反馈

感谢作者无私奉献,谢谢

其实这个问题最好把mLastPosition默认值改为-1

public class LabelFlowLayout extends ScrollFlowLayout {
private static final String TAG = "LabelFlowLayout";
private LabelFlowAdapter mAdapter;
private int mMaxSelectCount;
private int mLastPosition = -1;这里这样修改

因为LabelFlowLayout mLastPosition默认为0的时候,刚好我确实一个都没默认选择,这时候第0个lable又不能选择了

牛的,后面我再更新一下

已经更新了,更新到最新的就可以了,感谢反馈