У меня возникли проблемы с этим, когда я назначил прослушиватель checkedChange в OnBindViewHolder, так что при повторном использовании это будет вызываться несколько раз. для меня работало определение обратного вызова и слушателя в методе создания viewHolder.
public class CheckBoxHolder : RecyclerView.ViewHolder
{
public TextView line, destination, twd;
public ImageView icon;
public LinearLayout lineParent;
public CheckBox checkBox;
public CheckBoxHolder(View view, Action<int, CompoundButton.CheckedChangeEventArgs> listener) : base(view)
{
checkBox = view.FindViewById<CheckBox>(Resource.Id.check_checkBox);
twd = view.FindViewById<TextView>(Resource.Id.check_twd);
destination = view.FindViewById<TextView>(Resource.Id.check_dest);
line = view.FindViewById<TextView>(Resource.Id.check_line);
lineParent = view.FindViewById<LinearLayout>(Resource.Id.check_line_parent);
icon = view.FindViewById<ImageView>(Resource.Id.check_icon);
view.Click += (sender, e) => {
checkBox.Checked = !checkBox.Checked;
};
checkBox.CheckedChange += (object sender, CompoundButton.CheckedChangeEventArgs e) => listener(base.Position, e);
}
}
это код C # от xamarin, но концепция должна быть применима к вашей проблеме.
Осторожно.
overflow-x
не наиболее широко поддерживаемый атрибут там.
Я склонен идти с содержанием отделения с некоторым правильным дополнением:
CSS:
div.scroll {
overflow:auto;
padding-right:6px;
/* I've found 6px to be just right my purposes, but try others*/
}
Править: Необходимо будет добавить атрибут высоты где-нибудь, чтобы это работало! У меня обычно есть набор по умолчанию в div.scroll объявлении, затем настраивают это для конкретных случаев (больше всего). HTML:
<div class="scroll" >
<table>
<!-- your table stuff in here -->
</table>
</div>