несмотря на то, что я использую viewmodel для данных, каждый раз при изменении ориентации экрана просмотрщик продолжает прокручиваться вверх.
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
(activity as AppCompatActivity).setSupportActionBar(binding?.toolbar)
val host: NavHostFragment = activity?.supportFragmentManager
?.findFragmentById(R.id.nav_host_fragment) as NavHostFragment?
?: return
// Set up Action Bar
val navController = host.navController
// Setup bottom navigation view
binding?.bottomNav?.setupWithNavController(navController)
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = DataBindingUtil.inflate(inflater , com.angelstudio.newsapp.R.layout.fragment_feed,container , false)
myView= binding.root
return myView
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
viewModel =ViewModelProviders.of(this,viewModelFactory).get(FeedFragmentViewModel::class.java)
bindUi()
(activity as? AppCompatActivity)?.supportActionBar?.title = getString(R.string.Naws_App)
(activity as? AppCompatActivity)?.supportActionBar?.subtitle = getString(R.string.Feed)
binding.mySwiperefresh.setOnRefreshListener {
refresh()
mySwiperefresh.setRefreshing(false)
}
}
private fun bindUi()=launch {
val topHeadline =viewModel.topHeadline.await()
val naviagte =viewModel.navigateToDetail.await()
topHeadline.observe(this@FeedFragment, Observer {
if(it == null || it.isEmpty()) return@Observer
binding.recyclerView.apply {
showShimmerAdapter()
topHeadlineAdapter = TopHeadlineAdapter(TopHeadlineListener {
url -> viewModel.onTopHeadlineClicked(url)
})
adapter = topHeadlineAdapter
topHeadlineAdapter.submitList(it)
hideShimmerAdapter()
}
})
вот мой код на фрагменте, я не могу найти то, что делаюнеправильно, есть ли что-то, что нужно обработать в состоянии позиции просмотра повторного просмотра на viewmodel?