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?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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!