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

不支持自动压缩宽高 #54

Closed
qssq666123 opened this issue Mar 8, 2017 · 26 comments
Closed

不支持自动压缩宽高 #54

qssq666123 opened this issue Mar 8, 2017 · 26 comments

Comments

@qssq666123
Copy link

无法做出类似gridview的等分效果 只能写死高度 ,麻烦。比如4个表格,设置了间距,match_parent 第4个 被索引覆盖了。

@qssq666123
Copy link
Author

如果没有索引貌似是等分的 是咋回事?

@qssq666123
Copy link
Author

另外 顶部的变色 里面的字母不变色又怎么做

@qssq666123
Copy link
Author

以及索引 baner如果上部分不要遮盖字母又如何控制。

@qssq666123
Copy link
Author

还有一个坑 就是间距,gridview上下间距 如何控制等分 比如控制了上面 你会发现没有交集的地方和交集的地方会出现宽高不一致,但是通过标题栏底部设置padding。解决,但是置顶的标题栏估计也是用的一样的样式吧。

@YoKeyword
Copy link
Owner

RecyclerView对 Grid的各种间距控制和GridView这个组件有一些区别的;
变色的问题没懂你的意思;
baner是指IndexBar吗? 上部分不遮盖可以通过indexBar_textSpace属性来调整曲线实现

我看你的需求挺特别的, 这个库出发点是简单构建出可索引的城市选择、通讯录选择的页面;所以IndexBar等都集成到IndexableLayout里的。

更具拓展性的做法其实是IndexBar和RecyclerView分离, 如果你的场景比较复杂,你可以fork下修改源码,或者自己实现

近期个人工作比较忙,可能没太多时间去维护该库 望见谅~ 😢

@qssq666123
Copy link
Author

上面那个自适应可以,原来这个和设计师设计的不同设计师认为这字母不应该覆盖在上面。 不然不好看 ,表格布局确实是。

不过设置padding可以解决,另外gridview还发现一个问题 4个格子是通过match_parent弄的,滑动的时候无意中发现 有的变小了。

@qssq666123
Copy link
Author

请问 indexBar_textSpace 大概调整多少呢? 我设置padding也能解决就是不知道右边那个条的宽度是多少

@YoKeyword
Copy link
Owner

IndexBar的宽度有属性可以设置,背景色也可以设置~

indexBar_textSpace看你需求自己配置下... 如果你都觉得不这么设置用户体验也没差的话,砍掉这个设计吧...

你的图片我打不开~

@qssq666123
Copy link
Author

padding并不能解决我刚刚说错了- -无语,背景色我说的是置顶的背景色是单独的吗?

@YoKeyword
Copy link
Owner

置顶? 指的是粘性IndexTitle? 它跟随你的Title的布局, 可以自己定制

@qssq666123
Copy link
Author

是啊,关键是置顶的 和滚动的样式不一样https://share.weiyun.com/542844a29aafc9b51b93af2cf18f7105 这是图片

@qssq666123
Copy link
Author

右边那个能搞定吗 您说的textspace干嘛的我设置没啥效果。还是把视图区域覆盖了。

@YoKeyword
Copy link
Owner

YoKeyword commented Mar 8, 2017

额,你需要颜色不一样.... 置顶的黏性Title用的是 Title的布局:

 @Override
    public RecyclerView.ViewHolder onCreateTitleViewHolder(ViewGroup parent) {
        ...
    }

我看你的设计稿,应该是滚动时Title不用互相顶动上一个/下一个Title的交互吧... 交互不同,库的交互是Title互相顶动、固定的形式;

另外RecyclerView recyclerView = indexableLayout.getRecyclerView();拿到RecyclerView对象,设置ItemDecoration可设置各种间距

textspace设置IndexBar的字间距,可通过调节间距,调整IndexBar的整体高度

如果设计不愿让步,fork下,修改下源码,你的设计稿的交互实现很简单。

@qssq666123
Copy link
Author

是啊, 所以指定的没法单独实现吧。另外 最主要的是右边字体遮盖问题如何解决。

@YoKeyword
Copy link
Owner

颜色不一样,需要改源码实现;

遮盖问题使用强大到爆表的ItemDecoration~

@qssq666123
Copy link
Author

不过看源码 貌似把 继承的framelayout改成线性布局是否可以解决遮盖问题 ,itemDecoration有一个毛病就是等分问题。网上的都没能解决,相交的地方如果不保持每一个item左右一直会导致高度,大小发生一些变化 item间隙越大越明显

@qssq666123
Copy link
Author

不 继承又要改很多 ---

@YoKeyword
Copy link
Owner

你的视觉搞的交互形式是另外一种...

置顶的问题,砍下交互吧,我觉得固定死的还不如联动的~

@qssq666123
Copy link
Author

嗯置顶的没法解决,右边的已解决。 直接设置recyclerview的padding

@qssq666123
Copy link
Author

qssq666123 commented Mar 8, 2017

您忙吧有空希望弄下,因为什么呢 横的,如果给标题栏不设置颜色不好看,如果设置颜色就会发现右边区域不和谐,标题块没有彻底到右边 是有点不好看 除非类似我上面发的 是纯色的还差不多

@YoKeyword
Copy link
Owner

好的~ 最近个人时间较少 见谅

你可以稍微修改下源码,在置顶StickTItle固定时,回调事件,在你自己的页面上放一个绿色的Title布局, 回调时刷新这个绿色布局的字母即可

@qssq666123
Copy link
Author

哈真的吗如果很简单我就弄一下。 主要是感觉好像需要理一下代码

@qssq666123
Copy link
Author

已解决
for (int i = 0; i < getChildCount(); i++) { if (getChildAt(i) == mRecy) { mStickyViewHolder.itemView.setVisibility(INVISIBLE); mIndexableAdapter.onStickyTitleViewAdd(mStickyViewHolder); addView(mStickyViewHolder.itemView, i + 1); return; }

@qssq666123
Copy link
Author

private void initStickyView(final IndexableAdapter adapter) {
mStickyViewHolder = adapter.onCreateStickyTitleViewHolder(mRecy);
mStickyViewHolder.itemView.setOnClickListener(new OnClickListener() {

@OverRide
public void onClick(View v) {
if (adapter.getOnItemTitleClickListener() != null) {
int position = mIndexBar.getFirstRecyclerViewPositionBySelection();
ArrayList datas = mRealAdapter.getItems();
if (datas.size() > position && position >= 0) {
adapter.getOnItemTitleClickListener().onItemClick(
v, position, datas.get(position).getIndexTitle());
}
}
}
});
mStickyViewHolder.itemView.setOnLongClickListener(new OnLongClickListener() {
@OverRide
public boolean onLongClick(View v) {
if (adapter.getOnItemTitleLongClickListener() != null) {
int position = mIndexBar.getFirstRecyclerViewPositionBySelection();
ArrayList datas = mRealAdapter.getItems();
if (datas.size() > position && position >= 0) {
return adapter.getOnItemTitleLongClickListener().onItemLongClick(
v, position, datas.get(position).getIndexTitle());
}
}
return false;
}
});
for (int i = 0; i < getChildCount(); i++) {
if (getChildAt(i) == mRecy) {
mStickyViewHolder.itemView.setVisibility(INVISIBLE);
// mStickyViewHolder.itemView.setBackgroundColor(Color.RED);
addView(mStickyViewHolder.itemView, i + 1);
return;
}
}
}

@qssq666123
Copy link
Author

嘿嘿这个最完美

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants