我正在尝试使用GridLayoutManager构建一个RecyclerView,它每行有一个可变的列计数,如下所示:
同一行中所有项目的宽度之和将始终为屏幕宽度。
我试图重新组织项目列表,按行列表分组,然后每行膨胀一个线性布局。它不太好。
所以我被困住了,没有任何想法。任何帮助都将非常感激
我也有类似的情况,认为使用kotlin:密封类
是一个不错的选择,您可以为适配器列表中的每一项设置任何spanSizeLookup
。
GridLayoutManager
的安装示例spanSizeLookup:
val spanCount = 2
val layoutManager = GridLayoutManager(context, spanCount)
layoutManager.spanSizeLookup = object : SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
val item = adapter.getItemList().getOrNull(position) ?: return spanCount
return when (item) {
is ProfileItem.Header -> spanCount
is ProfileItem.Status -> spanCount
is ProfileItem.Progress -> spanCount
is ProfileItem.Empty -> spanCount
is ProfileItem.Item -> spanCount / 2
is ProfileItem.Load -> spanCount / 2
}
}
}
我的密封类
:
sealed class ProfileItem {
object Header : ProfileItem()
data class Status(var content: UserItem.User?) : ProfileItem()
object Progress : ProfileItem()
object Empty : ProfileItem()
data class Item(val content: RecordItem.Record) : ProfileItem()
object Load : ProfileItem()
}
您可以使用GridLayoutManager。要在行中有不同的列计数,必须重写SetPansizeLookup。
例子:
//spanCount = 3 (just for example)
GridLayoutManager gridLayoutManager = new GridLayoutManager(getAppContext(), spanCount);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
//define span size for this position
//some example for your first three items
if(position == item1) {
return 1; //item will take 1/3 space of row
} else if(position == item2) {
return 2; //you will have 2/3 space of row
} else if(position == item3) {
return 3; //you will have full row size item
}
}
});
我在上面的代码示例中显示了您可以更改商品大小。注意spanSize
我有一个在运行时加载行的表。加载后,用户需要在每一行的第一列中从中选择一个项目。然后他需要在每行的同一行上从另一个中选择一个项目。第二个的内容取决于第一个的选择。 我现在的编码方式是更改整个第二列的combobox内容。 有没有一种方法可以让每一行的组合框对象都不一样,这样我就可以在第一个组合框中选择一个值的时候处理它?
我创建了包含员工信息的。在这个JTable中,我添加了名为“资历”的列。此列由表示(每行的内容不同)。例如: 内容取自。 问题是在第1行和第2行中选择的项目是“程序员”,但是“程序员”不应该出现在第2行中。只有当我单击时,才会出现正确的列表,即第2行-{“writer”,“editor”}。
我成功地做到了这一点,但是以一种非常规的方式。在我的recyclerView适配器中,我对第一个元素使用了一个不同的viewHolder,一个更大的元素。这将是一个很好的解决方案,但第二个元素将低于第一个元素。所以我做了一个技巧,给recyclerView一个与第一个元素相同的固定高度,这样第一个元素和第二个元素就会重叠,我只需要让第二个元素的可见性消失。 但我并不特别喜欢这种方法。有人有更好的主
问题内容: 使用Pandas或CSV模块将每行具有不同列数的CSV导入Pandas DataFrame的最佳方法是什么。 使用此代码: 产生以下错误 问题答案: 在read_csv()中提供列名列表应该可以解决问题。 例如:names = [‘a’,’b’,’c’,’d’,’e’] https://github.com/pydata/pandas/issues/2981 编辑:如果您不想提供列名,
问题内容: 我有一个有趣的查询需要做。我有一张表,其中有一列包含ip地址编号(使用)和一列。我希望能够计算每天有唯一IP地址列的数量。也就是说,每天有多少个不同的ip行。因此,例如,如果一个IP地址在同一天两次,则在最终计数中将计为1;但是,如果同一IP地址在另一天,则将被计算为第二个计数。 示例数据: 问题答案: SQLFiddle演示
问题内容: 我可以在不枚举的情况下计算每列的不同值吗? 说我有一个表,,,并没有其他的列。在没有明确提及这些列的情况下,我希望得到与以下结果相同的结果: 我怎样才能做到这一点 ? 问题答案: 我认为使用普通SQL可以轻松完成的最好工作就是运行这样的查询,以生成所需的查询,然后运行该查询。