如何为不同的内容使用不同的卡片布局?

CaptJak

使用时,显示卡的特定布局CardView非常简单。

我已经为卡创建了XML布局,并使用实例化了该XML布局到View LayoutInflater

进一步来说:

View largeCardView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.card_view, viewGroup, false);

这就是所谓的onCreate()我的方法RecyclerAdapteronCreate然后方法返回this largeCardVew这可以完美地工作,并且卡片按XML文件中的布局显示。

但是,如果我想针对不同的内容显示不同的卡片怎么办?是否可以针对不同的事物显示不同的卡片,但将它们全部放在同一张卡片中RecyclerView

例如,如果我事先知道会有一个字符串传递到TextView卡中,并且该字符串只能有两个值“ Large”和“ Small”,那么我该如何使用一种类型的XML文件来与“大”文本和另一个与“小”文本一起使用的XML文件?

这是一个示例(摘自Google Play):

在此处输入图片说明

如您在图片中所看到的,有两种不同的卡类型,具有不同的布局(忽略橙色按钮)。有没有办法实现相似的目的,并且使卡片相同RecyclerView

CaptJak

这与创建单个卡布局的方式类似,但是除了具有单个.xml和单个的之外ViewHolder,每个布局都需要有自己的 .xml文件来定义它,以及一个ViewHolder类。

发现非常重要的getItemViewType(int position)方法是RecyclerView.Adapter类中方法。默认情况下,此方法返回0,并假定使用单个布局viewType(在本例中为a cardView)。由于需要多个类型,因此我必须定义它们。

然后,我创建了一个整数数组(称为cardViewTypes),定义了用于哪种数据类型的布局。由于您应该已经有了卡片内容的某种数据集(无论是aList还是a HashMap),因此确保数据与视图类型匹配非常重要。

就我而言,我希望有4种不同的卡布局,因此我在各自的.xml文件中定义了每种布局,并为其指定了唯一的名称。然后,在我的RecyclerView.Adapter课堂上,我创建了一个单独的类别,该类别ViewHolder针对每种布局进行了扩展我确保viewType数组中的每个整数都与数据匹配并称为getItemViewType

然后,我使用中的onCreateViewHolder方法检查视图类型RecyclerView.Adapter,并为绑定相应的视图,然后将其绑定到中onBindViewHolder(ViewHolder, int)

结果是针对不同内容的不同卡布局。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用不同的卡片样式滚动时,recyclerView变得混乱

来自分类Dev

Android 中的 Cardview - 可以使用不同的卡片来收集用户信息吗?

来自分类Dev

Angular:如何为不同的视图使用不同的模板?

来自分类Dev

如何为不同的程序使用不同的Java版本?

来自分类Dev

如何调整具有不同图像大小的卡片但保持卡片大小

来自分类Dev

如何为验证消息使用不同的错误代码?

来自分类Dev

Pubnub:如何为加入的每个频道使用不同的UUID

来自分类Dev

如何为多个对象使用不同的变换实例绘制

来自分类Dev

如何为每列使用不同的WHERE子句

来自分类Dev

如何为单选按钮使用不同的背景色

来自分类Dev

使用不同布局的Facebook登录

来自分类Dev

如何在 jemter 中使用不同的内容类型。

来自分类Dev

如何在Ruby on Rails的不同页面上使用不同的布局?

来自分类Dev

如何为不同的文件夹使用不同的遥控器?

来自分类Dev

如何为不同的领域用不同的颜色打印 awk 的结果?

来自分类Dev

Bootstrap 4:如何将不同高度的卡片排成一排?

来自分类Dev

如何检索所有数据并显示在不同的卡片中

来自分类Dev

如何使用不同的相机?

来自分类Dev

如何为不同的窗口设置不同的键盘布局语言?

来自分类Dev

为动态创建的卡片附加不同的功能

来自分类Dev

对数组中不同大小的卡片进行排序

来自分类Dev

使用不同的访问级别显示不同的内容

来自分类Dev

Compass Sample应用程序如何在其卡片上的语音触发中使用不同的文本?

来自分类Dev

Android - 用不同的按钮显示不同的布局

来自分类Dev

如何在Extjs表布局中使用不同的对齐方式?

来自分类Dev

Android如何在单击按钮时使用不同的相对布局视图打开相同的活动?

来自分类Dev

Android:如何使用不同的字符串值文件填充布局?

来自分类Dev

如何在Extjs表布局中使用不同的对齐方式?

来自分类Dev

如何多次扩展布局但在其列表视图中使用不同的数据?

Related 相关文章

  1. 1

    使用不同的卡片样式滚动时,recyclerView变得混乱

  2. 2

    Android 中的 Cardview - 可以使用不同的卡片来收集用户信息吗?

  3. 3

    Angular:如何为不同的视图使用不同的模板?

  4. 4

    如何为不同的程序使用不同的Java版本?

  5. 5

    如何调整具有不同图像大小的卡片但保持卡片大小

  6. 6

    如何为验证消息使用不同的错误代码?

  7. 7

    Pubnub:如何为加入的每个频道使用不同的UUID

  8. 8

    如何为多个对象使用不同的变换实例绘制

  9. 9

    如何为每列使用不同的WHERE子句

  10. 10

    如何为单选按钮使用不同的背景色

  11. 11

    使用不同布局的Facebook登录

  12. 12

    如何在 jemter 中使用不同的内容类型。

  13. 13

    如何在Ruby on Rails的不同页面上使用不同的布局?

  14. 14

    如何为不同的文件夹使用不同的遥控器?

  15. 15

    如何为不同的领域用不同的颜色打印 awk 的结果?

  16. 16

    Bootstrap 4:如何将不同高度的卡片排成一排?

  17. 17

    如何检索所有数据并显示在不同的卡片中

  18. 18

    如何使用不同的相机?

  19. 19

    如何为不同的窗口设置不同的键盘布局语言?

  20. 20

    为动态创建的卡片附加不同的功能

  21. 21

    对数组中不同大小的卡片进行排序

  22. 22

    使用不同的访问级别显示不同的内容

  23. 23

    Compass Sample应用程序如何在其卡片上的语音触发中使用不同的文本?

  24. 24

    Android - 用不同的按钮显示不同的布局

  25. 25

    如何在Extjs表布局中使用不同的对齐方式?

  26. 26

    Android如何在单击按钮时使用不同的相对布局视图打开相同的活动?

  27. 27

    Android:如何使用不同的字符串值文件填充布局?

  28. 28

    如何在Extjs表布局中使用不同的对齐方式?

  29. 29

    如何多次扩展布局但在其列表视图中使用不同的数据?

热门标签

归档