Android studio - 如何将多个recyclerviews置于活动中并使屏幕可滚动?

     2023-04-19     159

关键词:

【中文标题】Android studio - 如何将多个recyclerviews置于活动中并使屏幕可滚动?【英文标题】:Android studio - how to put multiple recyclerviews in activity and make the screen scrollable? 【发布时间】:2021-07-17 10:13:49 【问题描述】:

我想向活动添加多个回收站视图,但屏幕上没有足够的空间。如何使屏幕可滚动,以便有更多空间来添加回收站视图?

【问题讨论】:

使用子 ViewGroup 将它们全部放在一个 NestedScrollView 中。 【参考方案1】:

您的解决方案就在这里

  <androidx.core.widget.NestedScrollView
    android:layout_
    android:layout_>
    
  <LinearLayout
      android:layout_
      android:layout_
      android:orientation="vertical">

      <androidx.recyclerview.widget.RecyclerView
          android:layout_
          android:layout_/>

      <androidx.recyclerview.widget.RecyclerView
          android:layout_
          android:layout_/>


      <androidx.recyclerview.widget.RecyclerView
          android:layout_
          android:layout_/>
  </LinearLayout>
</androidx.core.widget.NestedScrollView>

注意::根据需要更改回收站视图的高度。 随时询问是否 有些不清楚

【讨论】:

您好,感谢您的回答。我放在那里的两件物品之间有很大的空间。我怎样才能减少它?【参考方案2】:

如果您想一个接一个地打开两个 RecyclerView,我强烈建议您只使用一个具有不同 ViewHolders 的视图,具体取决于您要显示的内容。

enum class ContentType(val adapterTypeId: Int) 
    TYPE_ONE(AdapterTypeId.ADAPTER_TYPE_ONE),
    TYPE_TWO(AdapterTypeId.ADAPTER_TYPE_TWO);

    companion object 
        fun getTypeFromAdapterTypeId(adapterId: Int) = when (adapterId) 
            AdapterTypeId.ADAPTER_TYPE_ONE -> TYPE_ONE
            AdapterTypeId.ADAPTER_TYPE_TWO -> TYPE_TWO
            else -> throw RuntimeException("Unknown Content type")
        
    

    private object AdapterTypeId 
        const val ADAPTER_TYPE_ONE = 0
        const val ADAPTER_TYPE_TWO = 1
    

创建一个密封的类,它将作为所有项目的基类:

sealed class GalleryContent(val contentType: ContentType)

然后在您的适配器中:

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder 
    return when (ContentType.getTypeFromAdapterTypeId(viewType)) 
        ContentType.TYPE_ONE -> // Bind proper ViewHolder
        ContentType.TYPE_TWO -> // Bind proper ViewHolder
    


override fun getItemViewType(position: Int): Int 
    val item = itemList[position]
    return item.contentType.adapterTypeId

当然你可以添加任意数量的不同类型

【讨论】:

如何阻止 Android Studio 打开多个窗口?

】如何阻止AndroidStudio打开多个窗口?【英文标题】:HowtostopAndroidStudiofromopeningmultiplewindows?【发布时间】:2020-05-1404:05:30【问题描述】:我在AndroidStudio中打开了一个Flutter项目。在pubspec.yaml文件中导入任何新包后,会弹出一个新... 查看详情

将 ProGuard / Dexguard 与多个 Android Studio 模块一起使用

】将ProGuard/Dexguard与多个AndroidStudio模块一起使用【英文标题】:UsingProGuard/DexguardwithmultipleAndroidStudioModules【发布时间】:2015-05-2917:15:23【问题描述】:我有一个带有两个模块的AndroidStudioandroid项目,模块A和模块B。我正在构建和... 查看详情

如何在 Android Studio 的代码中选择多个位置(崇高)?

】如何在AndroidStudio的代码中选择多个位置(崇高)?【英文标题】:Howtoselectmultipleplaces(sublime)incodeinAndroidStudio?【发布时间】:2017-02-1802:57:21【问题描述】:如何在AndroidStudio中选择代码中的多个位置?我想在源代码的多个位置... 查看详情

将本地库项目添加为 Android Studio 中多个项目的依赖项

】将本地库项目添加为AndroidStudio中多个项目的依赖项【英文标题】:AddlocalLibraryProjectasadependencytomultipleProjectsinAndroidStudio【发布时间】:2014-07-3117:30:27【问题描述】:我通过选择File&gt;NewProject...&gt;"Markthisprojectasalibrary&q... 查看详情

如何在 Android Studio logcat 中过滤多个单词

】如何在AndroidStudiologcat中过滤多个单词【英文标题】:HowtofiltermultiplewordsinAndroidStudiologcat【发布时间】:2016-01-1315:10:37【问题描述】:我只想在logcat中看到几个单词。换句话说,只是一个给定的标签。我尝试启用Regex并输入[Encod... 查看详情

如何在 android studio 1.0 中自动添加多个方法?

】如何在androidstudio1.0中自动添加多个方法?【英文标题】:Howtoautomateaddingmultiplemethodsinandroidstudio1.0?【发布时间】:2015-03-2411:15:17【问题描述】:我正在关注如何从http://www.kilobolt.com/day-3-understanding-the-libgdx-framework.html创建一个飞... 查看详情

如何将一个 DataFrame 中的多个列与另一个 DataFrame 连接

】如何将一个DataFrame中的多个列与另一个DataFrame连接【英文标题】:HowtojoinmultiplecolumnsfromoneDataFramewithanotherDataFrame【发布时间】:2018-07-0721:43:11【问题描述】:我有两个DataFrames推荐和电影。推荐中的列rec1-rec3表示来自电影数据... 查看详情

如何在 Android Studio 中使用 View Binding 为多个按钮创建 onClick 方法?

】如何在AndroidStudio中使用ViewBinding为多个按钮创建onClick方法?【英文标题】:HowtocreateonClickmethodformultiplebuttonsusingViewBindinginAndroidstudio?【发布时间】:2020-09-0217:06:16【问题描述】:这个很简单通过view.getId()创建onClickpublicvoidbuttonO... 查看详情

如何在 Android Studio 中删除谷歌地图上多个更新位置的旧标记?

】如何在AndroidStudio中删除谷歌地图上多个更新位置的旧标记?【英文标题】:HowtoremovetheoldmarkerofmultipleupdatedlocationonGoogleMapinAndroidStudio?【发布时间】:2022-01-0323:21:21【问题描述】:privatefinalHashMap<String,Marker>hm=newHashMap<Strin... 查看详情

如何将 Eclipse 中的 android 项目导入 Android Studio?

】如何将Eclipse中的android项目导入AndroidStudio?【英文标题】:HowtoimportandroidprojectfromEclipsetoAndroidstudio?【发布时间】:2019-01-1821:04:59【问题描述】:我正在尝试将我的旧android项目从Eclipse迁移到AndroidStudio。我一步一步地遵循了许... 查看详情

如何将外部依赖项(jar 文件)添加到 android studio?

】如何将外部依赖项(jar文件)添加到androidstudio?【英文标题】:Howtoaddexternaldependencies(jarfile)toandroidstudio?【发布时间】:2016-11-2205:29:23【问题描述】:我正在尝试将外部库(httpmime-4.0-sources.jar)添加到android项目中,因为android-... 查看详情

如何将 okhttp 库导入到 android studio?

】如何将okhttp库导入到androidstudio?【英文标题】:Howtoimportokhttplibrarytoandroidstudio?【发布时间】:2015-02-1015:44:57【问题描述】:我想将okhttp源代码(不是jar)作为模块导入到androidstudio。对此有什么建议吗?谢谢!【问题讨论】:... 查看详情

如何将 React-Native 项目集成到 Android-Studio?

】如何将React-Native项目集成到Android-Studio?【英文标题】:HowtoIntegratetheReact-NativeprojecttoAndroid-Studio?【发布时间】:2017-06-2409:16:42【问题描述】:我曾尝试将react-native项目导入到androidstudio,但“index.android.js”文件未显示在android-s... 查看详情

如何将材料设计库导入 Android Studio?

】如何将材料设计库导入AndroidStudio?【英文标题】:HowdoIimportmaterialdesignlibrarytoAndroidStudio?【发布时间】:2015-02-0611:54:49【问题描述】:我想将此库导入到我在AndroidStudiov1.0.0rc2的项目中:https://github.com/navasmdc/MaterialDesignLibrary但... 查看详情

如何将 iPhone 添加到 Android Studio?

】如何将iPhone添加到AndroidStudio?【英文标题】:HowdoIaddiPhonetoAndroidStudio?【发布时间】:2018-12-1610:21:52【问题描述】:AVD管理器只有Android,没有iOS。我必须为此安装Xcode吗?下图来自flutters指南:https://flutter.io/using-ide/【问题讨论... 查看详情

在 Android Studio 中创建一个包含多个对象的列表视图

】在AndroidStudio中创建一个包含多个对象的列表视图【英文标题】:CreatealistviewWithMultipleObjectsinAndroidStudio【发布时间】:2015-03-2822:40:09【问题描述】:我想创建一个在AndroidStudio上显示许多不同内容的列表视图。这样做的目的是根... 查看详情

LibGdx 与 Android Studio 有多个错误

】LibGdx与AndroidStudio有多个错误【英文标题】:LibGdxhavingmultipleerrorswithAndroidStudio【发布时间】:2019-01-0205:08:38【问题描述】:一个多星期以来,我一直在尝试通过关注thistutorial使用AndroidStudio学习LibGDX。我永远无法为桌面配置构建... 查看详情

如何将 Android Studio 与 PhpmyAdmin 链接

】如何将AndroidStudio与PhpmyAdmin链接【英文标题】:HowtolinkAndroidStudiowithPhpmyAdmin【发布时间】:2016-08-0108:13:05【问题描述】:我是AndroidStudio和Pho编程的新手。我正在AndroidStudio上制作登录/注册应用程序,并希望将其与我在PhpMyAdmin上... 查看详情