Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

网格布局使用分割线,如果数据仅展示一行,setMargin的End无效 #324

Closed
ChawLoo opened this issue Jan 16, 2023 · 21 comments
Labels
寻求帮助 Extra attention is needed

Comments

@ChawLoo
Copy link
Contributor

ChawLoo commented Jan 16, 2023

问题描述

有一个网格布局,设置了分割线

divider {
    orientation = DividerOrientation.GRID
    setDivider(width = 1)
    setMargin(start = 50, end = 50)
    setColor("#e1e1e1")
}

期望行为

期望start边距和end边距一致

如何复现

将spanCount设置为4,数据条目数量为4个

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

截图

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

版本

  • BRV:1.3.89
  • Android:11
  • Gradle: 7.5.1
  • Android Studio:2021.3.1 Patch 1
@ChawLoo ChawLoo added the 寻求帮助 Extra attention is needed label Jan 16, 2023
@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 16, 2023

另外寻求一下大佬的指点,实现以下样式,如何写分割线
image

@liangjingkanji
Copy link
Owner

liangjingkanji commented Jan 16, 2023

请fork仓库复现问题, 否则非明显bug无法被修复, 我实在没工夫去替每个人复现bug, 严重影响到我自己的工作和框架需求开发了

@liangjingkanji
Copy link
Owner

liangjingkanji commented Jan 16, 2023

这个功能应该就是如此, 他所谓的start和end好像就是针对整个列表不是一个item

具体我也不清楚

@liangjingkanji
Copy link
Owner

另外寻求一下大佬的指点,实现以下样式,如何写分割线 image

直接写到item的layout布局中, 不需要分割线的就View.GONE(例如边界末尾的item)

@liangjingkanji
Copy link
Owner

另外寻求一下大佬的指点,实现以下样式,如何写分割线 image

我认为BRV应该支持这种分割线间距效果(以item为基准的间距), 但是不排除有人又想要保持现在的效果(以整个列表为基准的间距)

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 17, 2023

请fork仓库复现问题, 否则非明显bug无法被修复, 我实在没工夫去替每个人复现bug, 严重影响到我自己的工作和框架需求开发了

大佬,已fork,位于网格列表-网格分割线,如果网格布局只有一行时,end的边距就无效了

@liangjingkanji
Copy link
Owner

你这个截图补全我看不清楚什么分割线需求, 我感觉你垂直分割线想要以item为基准的间隔, 但是你水平分割线又不想要分割线间隔

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 17, 2023

你这个截图补全我看不清楚什么分割线需求, 我感觉你垂直分割线想要以item为基准的间隔, 但是你水平分割线又不想要分割线间隔

对,就是这个意思

@liangjingkanji
Copy link
Owner

liangjingkanji commented Jan 17, 2023

把图截全了, 我看不太清楚, 觉得太敏感就只能靠自己了

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 17, 2023

把图截全了, 我看不太清楚, 觉得太敏感就只能靠自己了

image

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 17, 2023

提的Bug已经fork并提交复现代码了,位于网格列表-网格分割线

@liangjingkanji
Copy link
Owner

嗯, 为什么左边的还没有分割线了

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 17, 2023

嗯, 为什么左边的还没有分割线了

截图原因,手机上有

@liangjingkanji
Copy link
Owner

liangjingkanji commented Jan 17, 2023

implementation 'com.github.liangjingkanji:BRV:1.3.90'

setMargin()新增两个参数baseItemStart/baseItemEnd

binding.rv.grid(3, orientation = RecyclerView.VERTICAL).divider {
    orientation = DividerOrientation.GRID
    setDivider(1, true)
    setMargin(16, 16, dp = true, baseItemStart = true)
    setColor(Color.WHITE)
}.setup {
    addType<DividerModel>(R.layout.item_divider_vertical)
}.models = getData()

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 18, 2023

nice,需求得到了解决,感恩大佬,但是那个Bug还在,网格布局,如果当只存在一行数据时,setMargin(start = 50, end = 50),竖线的底部没有间距

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 18, 2023

另外有一点,如果我想着 横线不设置margin,竖线设置margin的话,因为divier可以组合的特性,尝试性去实现,发现这种方式下,设置的间距又回归了列表为基准的模式了

@liangjingkanji
Copy link
Owner

liangjingkanji commented Jan 18, 2023

另外有一点,如果我想着 横线不设置margin,竖线设置margin的话,因为divier可以组合的特性,尝试性去实现,发现这种方式下,设置的间距又回归了列表为基准的模式了

setMargin(16, 0, dp = true, baseItemStart = true) 我发现并没有问题

image

@liangjingkanji
Copy link
Owner

nice,需求得到了解决,感恩大佬,但是那个Bug还在,网格布局,如果当只存在一行数据时,setMargin(start = 50, end = 50),竖线的底部没有间距

image

有间距, 依旧没问题

@liangjingkanji
Copy link
Owner

再有问题你fork仓库复现后再告诉我, 我已经反复为你复现很多次问题了

@ChawLoo
Copy link
Contributor Author

ChawLoo commented Jan 18, 2023

我突然get了你的baseItemStart 和baseItemEnd开关的作用了,没其他问题了,特地来回复一下。再一次感谢

@liangjingkanji
Copy link
Owner

可能我没描述清楚这两个参数, 不过我没有更好的描述方法, 如果你有的话可以发起pr完善此处

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
寻求帮助 Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants