liangjingkanji / BRV

[使用文档] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大
http://liangjingkanji.github.io/BRV/
MIT License
2.59k stars 327 forks source link

瀑布流两列,当数量为 奇数个会出现靠右的情况 #371

Closed qmkkxtxby closed 1 year ago

qmkkxtxby commented 1 year ago

问题描述

期望行为

如何复现

任何业务相关问题没有fork仓库复现问题一律无法解决, 凭空猜测只会让问题晦涩难懂, 大量耽误项目维护时间

截图

异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)

版本

liangjingkanji commented 1 year ago

请fork仓库复现问题, 并提供截图

liangjingkanji commented 1 year ago

这不是bug, 瀑布流就是如此

瀑布流布局中居左还是居右取决于上一行的item是左边短还是右边短(谁短就对齐谁), 不存在一定居左

liangjingkanji commented 1 year ago
image image

你觉得像这种按照你的想法一直居左排列合适吗?

qmkkxtxby commented 1 year ago

但你看代码,我高度都是一样的,划线部分的item明显高度不对

liangjingkanji commented 1 year ago

高度都是一致的你用什么瀑布流布局?你直接上图吧,浪费时间

young-kingdom commented 1 year ago

高度都是一致的你用什么瀑布流布局?

liangjingkanji commented 1 year ago

请你fork demo复现下这个问题

liangjingkanji commented 1 year ago

可是第一张图片没有任何问题 如果你还不能fork仓库复现问题提供代码给我,我将关闭此issues

qmkkxtxby commented 1 year ago

现在不管奇数情况靠右的问题,fork代码瀑布流高度设置一样的确没有出现靠右的情况,但我这边的确有,但fork代码之后瀑布流高度一致情况出现了第9个的高度高于其他item高度,代码和图片如下,可以明显看出第9个的高度是不对的 class StaggeredDividerFragment: BaseDividerFragment(R.layout.fragment_staggered_divider) {

override fun initView() {
    binding.rv.staggered(2).divider {
        setDrawable(R.drawable.divider_horizontal)
    }.setup {
        addType<DividerModel>(R.layout.item_divider_vertical)
        onBind {
            // 设置动态高度
            val layoutParams = itemView.layoutParams
            layoutParams.height = getModel<DividerModel>().height
            itemView.layoutParams = layoutParams
        }
    }.models = getData()
}

private fun getData(): List<Any> {
    val data = mutableListOf<Any>()
    // 生成动态宽高
    for (i in 0..10) {
        data.add(DividerModel(400))
    }
    return data
}

override fun initData() {
}

} https://user-images.githubusercontent.com/32348330/246800672-60a29454-63a7-4bc9-beeb-18ff14af7ed0.jpeg

liangjingkanji commented 1 year ago

我再次说明本问题无法复现

实在不行你自定义分割线吧, 不要使用BRV提供的简化函数了(只是提供不代表一定要使用)

image