在隐藏一些视图后,我的布局宽度发生变化后,我遇到了复选框丢失状态的问题。见图片
不隐藏其他团队:
隐藏后失去状态:
我使用linearlayout的重量来自动调整布局的宽度,但它会丢失我的复选框的状态。 我已经尝试在隐藏视图后手动重新设置它,但它似乎不起作用。
if (id == R.id.home_lv) mView.hideGuestTeamList();
else mView.hideHomeTeamList();
cbSelector.setChecked(true);
问题:如何在拉伸视野后保留状态?
任何帮助都将受到高度赞赏。感谢
编辑:我的适配器没有逻辑操作。视图处理程序位于我的片段将调用的函数内。
public void setListClickListener(ListView listView) {
final int id = listView.getId();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
CheckBox cbSelector = view.findViewById(R.id.player_name);
if(mSelectedItemCount < 5 || cbSelector.isChecked()) {
cbSelector.setChecked(!cbSelector.isChecked());
if (cbSelector.isChecked()) mSelectedItemCount++;
else mSelectedItemCount--;
mView.hideProceedButton();
switch (mSelectedItemCount) {
case 0:
mView.showHomeTeamList();
mView.showGuestTeamList();
break;
case 1:
if (id == R.id.home_lv) mView.hideGuestTeamList();
else mView.hideHomeTeamList();
cbSelector.setChecked(true);
break;
case 5:
mView.showProceedButton();
break;
}
}else{
mView.showLimitMessage();
}
}
});
}
答案 0 :(得分:0)
所以问题出在我的适配器上。我所做的只是检查我的视图并返回它,如果它不是空的。
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if(convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(layoutId, parent, false);
if (layoutId == R.layout.team_list_item) {
CircleImageView civ = convertView.findViewById(R.id.player_image);
CheckBox name = convertView.findViewById(R.id.player_name);
name.setText(players.get(position).getName());
}
}
return convertView;
}