Tenho um código aqui onde minha reclyclerView quando scrollo para cima ou para baixo, recicla também o estilo do botão Switch, seja True ou False.
Alguém consegue me ajudar?
Tenho um código aqui onde minha reclyclerView quando scrollo para cima ou para baixo, recicla também o estilo do botão Switch, seja True ou False.
Alguém consegue me ajudar?
Deybimar, de boa ?
Consegue mostrar um video/gif disso rodando ? Confesso que não entendi o que tá rolando e também o que vc quer que aconteça
De boa e ai?
Segue link do Video https://drive.google.com/file/d/1DuOmJLzY4H7eU38LFJVhMWmnySYwArCG/view?usp=share_link
Quero que quando o Item for reciclado, que não copie os estilos do Switch = True ou Vice e Versa.
Desde já agradeço sua ajuda e disponibilidade!
Fala Deybimar, de boa?
Saquei o que rola...
Acho que tu vai precisar no onBind setar o valor do switch pro valor original de novo.
Consegue mostrar pra gente como está o adapter pra gente te auxiliar?
De boa e você?
Cara eu consegui resolver fazendo assim
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
ListaAprISViewHolder vh = holder as ListaAprISViewHolder;
vh.TxtAprItensSeguranca.Text = ListaIS[position].DSC_ITEM_SEGURANCA.ToString();
vh.SwhItemSegurancaApr.Checked = ListaIS[position].IsChecked;
if (AprViewModel.m_switchItemSegurancaList.Count > 0 && ItensSegurancaFragment.itemSegurancaOSList.Count > 0)
{
if (AprViewModel.m_switchItemSegurancaList.Where(x => x.COD_APR == ListaIS[position].COD_APR && x.COD_ITEM_SEGURANCA == ListaIS[position].COD_ITEM_SEGURANCA).Count() > 0)
{
vh.SwhItemSegurancaApr.Checked = true;
}
else
{
vh.SwhItemSegurancaApr.Checked = false;
}
}
public override RecyclerView.ViewHolder OnCreateViewHolder(ViewGroup parent, int viewType)
{
View itemView = LayoutInflater.From(parent.Context).Inflate(Resource.Layout.fragment_apr_item_itens_seguranca, parent, false);
ListaAprISViewHolder vh = new ListaAprISViewHolder(itemView, OnClick);
//RecycleView do Botão Switch
Switch switchView = itemView.FindViewById<Switch>(Resource.Id.swhItemSegurancaApr);
switchView.CheckedChange += (s, e) => { int adapterPosition = vh.AdapterPosition;
if (adapterPosition != RecyclerView.NoPosition)
{ ListaIS[adapterPosition].IsChecked = e.IsChecked; } };
return vh;
}
Mas se tiver como deixar o código mais Clean aceito a ajuda.
Obrigado pelo apoio!