【问题标题】:Prevent reloading of data when clicking Radio Button in Android在Android中单击单选按钮时防止重新加载数据
【发布时间】:2022-01-26 05:40:22
【问题描述】:

在我的应用中,顶部栏包含 2 个单选按钮(提要、最近)的单选按钮组。 在此下方,我有 recyclerview(rv),它显示来自 API 的数据。

如果我点击 feed 按钮,rv 正在加载来自 API 的 feed 数据,如果我点击最近按钮,rv 正在加载来自 API 的最近数据。

现在,如果我在 feed 部分向下滚动并转到最近并向下滚动到最近的部分并返回到 feed 部分,它正在重新加载数据并且最后滚动的索引丢失。

在我切换到最近的部分之前,如何防止这种情况并显示完全相同的提要数据?

HomeFragment 的代码:

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View {
        // Inflate the layout for this fragment
        view_root = inflater.inflate(R.layout.fragment_home, container, false)
        init()
        mcontext = this.requireActivity()
        prefHandler = PrefHandler(mcontext)
        feedRecentRadioGroup.check(feedRecentRadioGroup.getChildAt(0).id)
        setFeedData()
        feedRecentRadioGroup.setOnCheckedChangeListener { group, checkedId ->
            when (checkedId) {
                R.id.feedRadioBtn -> {
                        setFeedData()
                }
                R.id.recentRadioBtn -> {
                    setRecentData()
                }
            }
        }
...

setFeedData() 和 setRecentData() -> 在这个函数中,进行单独的 API 调用,并将数据加载到 recyclerview -> 两个部分都可以正常工作。

Homefragment的布局

【问题讨论】:

  • 请分享代码。
  • 添加了代码..如果还需要什么,请告诉我。谢谢。

标签: android api android-recyclerview android-radiobutton


【解决方案1】:

我建议你使用TabLayout 来解决这个问题。 https://developer.android.com/reference/com/google/android/material/tabs/TabLayout

【讨论】:

  • 好的,我会尽力告诉你结果!谢谢!
猜你喜欢
  • 2021-03-01
  • 2019-04-12
  • 2019-06-24
  • 2014-09-24
  • 1970-01-01
  • 2012-12-09
  • 2012-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多