Пожалуйста, найдите код ниже, а также ожидаемые и фактические результаты:
fragment_dashboard.xml:
Код: Выделить всё
Код: Выделить всё
fun addOnButtonCheckedListener(toggleGroup: MaterialButtonToggleGroup,recyclerView: RecyclerView,mContext: Context){
recyclerView.layoutManager = StaggeredGridLayoutManager(2,LinearLayoutManager.VERTICAL)
toggleGroup.addOnButtonCheckedListener { group, checkedId, isChecked ->
if (isChecked){
when(checkedId){
R.id.buttonListView ->{
recyclerView.layoutManager = LinearLayoutManager(mContext,LinearLayoutManager.VERTICAL,false)
}
R.id.buttonGridView ->{
recyclerView.layoutManager = StaggeredGridLayoutManager(2,LinearLayoutManager.VERTICAL)
}
}
}
}
}
Код: Выделить всё
@AndroidEntryPoint
class DashboardFragment: Fragment() {
private lateinit var binding: FragmentDashboardBinding
private val viewModel: NotesListViewModel by viewModels()
private lateinit var adapter: NotesListAdapter
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?): View {
binding = FragmentDashboardBinding.inflate(inflater,container,false)
binding.navController = findNavController()
binding.viewModel = viewModel
adapter = NotesListAdapter(viewModel.getNotes(),findNavController())
binding.adapter = adapter
viewModel.addOnButtonCheckedListener(binding.toggleButtonViewGroup,binding.recyclerViewNotes,requireActivity())
return binding.root
}
override fun onResume() {
super.onResume()
adapter.notifyItemRangeChanged(0,viewModel.getNotes().size)
}
}

2. Ожидаемый результат:

Подробнее здесь: https://stackoverflow.com/questions/784 ... smooth-tra