【问题标题】:How to create cardview with varied content types and layouts in android?如何在android中创建具有不同内容类型和布局的cardview?
【发布时间】:2015-07-27 19:14:45
【问题描述】:

如何在android中创建多布局卡片视图?我使用回收器视图和卡片视图创建了与网格视图类似的布局卡片视图。现在我想创建一个卡片视图,其中第一张卡片采用全宽和一些高度,其他卡片采用半宽但高度不同。如下图所示,每张卡片都有不同的布局和尺寸。

任何指导都非常有帮助。任何示例代码都会很棒。

【问题讨论】:

  • 您的问题解决了吗?网上没有类似的东西

标签: java android gridview android-cardview


【解决方案1】:

如果您使用 RecyclerView 来显示卡片,您可以将布局管理器设置为 StaggeredGridLayoutManager:

mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);

// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
mRecyclerView.setHasFixedSize(true);

// use a linear layout manager
mLayoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
mRecyclerView.setLayoutManager(mLayoutManager);

如果您真的想改变现状,您可以在适配器内动态更改网格项的宽度。您需要使用 LayoutParams 来完成此操作。 LayoutParams 文档可以在这里找到:http://developer.android.com/reference/android/widget/LinearLayout.LayoutParams.html

希望能回答您的问题!

【讨论】:

  • StaggeredGridLayoutManager 只有一个构造函数,它是 StaggeredGridLayoutManager(int spanCount, intorientation),我需要在其中定义 spancount,它修复了在垂直或水平方向时屏幕上出现的卡片数量。我需要根据我的卡类型动态更改此数字,以便我可以在列表的每一行中拥有不同的 spanCount。我怎样才能做到这一点?任何帮助都会有很大帮助。我可以实现不同的高度元素,但是需要根据 spanCount 和方向来固定行或列,这不是我想要解决的问题。
  • 抱歉,忘记了那些构造函数参数。每次您想要不同的 spanCount 时,您都可以尝试使用不同的 RecyclerView,但这显然非常混乱,而且不是正确的做法。这是一个可能有帮助的答案:stackoverflow.com/questions/27744788/…
  • 谢谢,尝试了所有给定的解决方案..它没有工作。它们只是帮助在运行时更改一个 recyclerview 的 spanCount,而不是同一视图中的不同列。
  • 我明白了。抱歉,我无法正确回答您的问题。如果您找到解决方案,请随时通知我。
【解决方案2】:

看看这个recycle view with stagged

这个管理使你需要的所有东西 StaggeredGridLayoutManager

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-21
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多