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

功能添加建议收集 #907

Closed
CymChad opened this issue Mar 24, 2017 · 96 comments
Closed

功能添加建议收集 #907

CymChad opened this issue Mar 24, 2017 · 96 comments

Comments

@CymChad
Copy link
Owner

CymChad commented Mar 24, 2017

仅限于功能新增提议,使用过程中遇到的问题可以参考#906

历史建议

@xiaqiuming
Copy link

滑动到顶部的时候加载更多,可以做聊天。

@fy5220
Copy link

fy5220 commented Mar 31, 2017

BaseMultiItemQuickAdapter 希望增加展开/折叠全部功能,就不用每次都自己写循环了.还有BaseMultiItemQuickAdapter的互斥功能,设置是否开启,开启后展开一个其他的自动收缩.
BaseMultiItemQuickAdapter 展开的item如果在最下方,看不到,自动滚动到可见.
还有getItemPosition()为啥是private的.

@yxyaxng
Copy link

yxyaxng commented Apr 5, 2017

希望在BaseViewHolder里面增加个setSelected()方法

@CLD1994
Copy link

CLD1994 commented Apr 11, 2017

希望能添加数据更新功能
比如这样:

	public void listUpdate(final List<T> data, final UpdateCallBack<T> callBack){
		DiffUtil.calculateDiff(new DiffUtil.Callback() {
			@Override
			public int getOldListSize() {
				return getData().size();
			}
			
			@Override
			public int getNewListSize() {
				return data.size();
			}
			
			@Override
			public boolean areItemsTheSame(int oldItemPosition, int newItemPosition) {
				return callBack.areItemsTheSame(getItem(oldItemPosition), data.get(newItemPosition));
			}
			
			@Override
			public boolean areContentsTheSame(int oldItemPosition, int newItemPosition) {
				return callBack.areContentsTheSame(getItem(oldItemPosition), data.get(newItemPosition));
			}
		}).dispatchUpdatesTo(this);
	}

@CLD1994
Copy link

CLD1994 commented Apr 11, 2017

希望支持rxJava,不然还要自己在外面包一层

@Chenhengquan
Copy link

目前添加多个HeadView , 是添加进一个LinearLayout, 在这个容器里面添加views.
如果头部views 很多,长度也比较长,会导致内存消耗过大。
希望可以把添加HeadView 这个功能分离成多个子HeadViewItem,方便视图的回收释放

@jeaman
Copy link

jeaman commented Apr 12, 2017

只监听RequestLoadMoreListener,不显示LoadMoreView

@AndroidJohnsonWang
Copy link

希望能加入类似QQ的侧滑菜单功能,目前的侧滑删除感觉不是很好。

@kuyue
Copy link

kuyue commented Apr 18, 2017

V2.9.12,当加载更多失败时,能否增加上拉重新加载更多功能,而不只是点击重新去加载更多。

@yxyaxng
Copy link

yxyaxng commented Apr 22, 2017

希望能增加上拉没有数据,切换跳转下一个条目

@staticzh
Copy link

希望增加条目的吸顶效果

@CymChad
Copy link
Owner Author

CymChad commented Apr 26, 2017

@qq781548819
Copy link

希望增加单选,多选的功能,感谢陈总!!

@CymChad
Copy link
Owner Author

CymChad commented Apr 26, 2017

@qq781548819 单选和多选是item子view的功能吧?和adapter有什么关系?最近解决了一个人的bug,就是多选复用的问题,如果你需要可以看:https://github.com/Sky0202/About_BRVAH

@XuanJiAndroid
Copy link

希望能将加载更多的View对外暴露一下,因为可以通过暴露的View做一些动态展示文字的操作,望采纳!

@CymChad
Copy link
Owner Author

CymChad commented Apr 28, 2017

@XuanJiAndroid 可以自定义加载更多的View,具体可以查看wiki

@CymChad CymChad mentioned this issue Apr 29, 2017
@0LongLongAgo
Copy link

希望侧滑删除能有个删除按钮,删除操作还是得让用户再确认一下比较好

@zhuchen1109
Copy link

建议增加一个能自定义下拉刷新的功能,这个还是蛮实用的

@CymChad
Copy link
Owner Author

CymChad commented May 4, 2017

@zhuchen1109 下拉刷新和adapter无关。

@CymChad
Copy link
Owner Author

CymChad commented May 4, 2017

@skysmileereryday 集成应该不会了,因为这是view做的事情了,但是后续会想办法看能不能配合其他的第三方写个demo。

@ujffdi
Copy link

ujffdi commented May 5, 2017

能做双层列表的购物车?

@CymChad
Copy link
Owner Author

CymChad commented May 5, 2017

@ujffdi 可以

@CymChad
Copy link
Owner Author

CymChad commented May 5, 2017

@shangdinvxu 有的,具体可以看wiki

@ujffdi
Copy link

ujffdi commented May 16, 2017

使用BaseMultiItemQuickAdapter能不能让第二层的view嵌在第一层的view之间?如果有,具体实现?

@CymChad
Copy link
Owner Author

CymChad commented May 17, 2017

@ujffdi 没太明白你的意思,你重新开一个issues,详细的说明一下吧

@AllenCoder
Copy link
Collaborator

@lishuang08 没办法在Adapter中判断想使用的layout 这句话没搞懂是想表达什么意思?

  1. 没有办法判断什么时候使用哪种布局吗?
  2. 没办法判断当前adapter的layout ?

哪种意思?

@AllenCoder
Copy link
Collaborator

如果是kotlin 的多布局 应该这样写

/**
 * 文 件 名: MultipleItemQuickAdapter
 * 创 建 人: Allen
 * 创建日期: 2017/6/14 14:05
 * 修改时间:
 * 修改备注:
 */
class MultipleItemQuickAdapter(context: Context, data: List<MultipleItem>) : BaseMultiItemQuickAdapter<MultipleItem, BaseViewHolder>(data) {

    init {
        addItemType(MultipleItem.TEXT, R.layout.item_text_view)
        addItemType(MultipleItem.IMG, R.layout.item_image_view)
        addItemType(MultipleItem.IMG_TEXT, R.layout.item_img_text_view)
    }

    override fun convert(helper: BaseViewHolder, item: MultipleItem) {
        when (helper.itemViewType) {
            MultipleItem.TEXT -> helper.setText(R.id.tv, item.content)
            MultipleItem.IMG_TEXT -> when (helper.layoutPosition % 2) {
                0 -> helper.setImageResource(R.id.iv, R.mipmap.animation_img1)
                1 -> helper.setImageResource(R.id.iv, R.mipmap.animation_img2)
            }
        }
    }

}


@lishuang08
Copy link

lishuang08 commented Aug 7, 2017

@AllenCoder 之前想用kotlin独有的sealed class (密封类) 方式,不是使用MultiItemEntity接口,没办法在convert中切换R.layout,因为每个item只有到使用的时候才能知道是哪种类型的
只是建议一下,感觉kotlin使用这种多类型的方式比较好(因为一直用data class ,感觉java的类太费劲了)

@orzlenmo
Copy link

orzlenmo commented Aug 9, 2017

AbstractExpandableItem 这个类在实现类似qq好友列表时候。我只看到只能一条一条的去移除removeSubItem(int position)和removeSubItem(T subItem),能不能多一个移除所有子数据removeAllSubItem();的方法?还是本来就有的? 看了源码我最后是用了 ((HosptialDep) data.get(position)).getSubItems().clear();实现了清空

@LambdaV5
Copy link

希望在调用loadmoreEnd()之后,不调用setNewData也能继续上拉加载更多

@CymChad
Copy link
Owner Author

CymChad commented Aug 18, 2017

@LambdaV5 自己重新开启上拉开关也可以实现,本质上setNewData就是帮你开启了上拉开关。

@guominfang
Copy link
Contributor

功能:当数据不满一屏时,开启了上拉加载更多功能,希望不显示loadmoreview,
个人思路:根据目前框架的加载更多方法,在调用时,会传RecyclerView对象进去,
这样是否可以使用RecyclerView设置监听

mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {

            @Override
            public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
                super.onScrolled(recyclerView, dx, dy);
                LinearLayoutManager linearLayoutManager = (LinearLayoutManager) recyclerView.getLayoutManager();
                int firstPosition = linearLayoutManager.findFirstVisibleItemPosition();
                int lastPosition = linearLayoutManager.findLastVisibleItemPosition();
                if (isHideLoadMoreView(firstPosition , lastPosition )) {
                //隐藏页脚
                } else {
                // 可以显示页脚
                }
            }
        });

 private boolean isHideLoadMoreView(int firstPosition, int lastPosition) {
        // 可能需要考虑Header位置
        return firstPosition == 0 && lastPosition == mCourseList.size();
    }

这个情况是 LinearLayoutManager 的情况,其他的暂时没想到。

@LambdaV5
Copy link

loadMoreEnd后调用setEnableLoadMore(true)吗?为什么我调了不起作用

@sweet2o09
Copy link

这个我想提个功能需求:
当数据不足一屏的时候,显示LoadMoreView布局,允许它占据屏幕剩余高度
请评估下,因为我看了很多应用,在数据未满一屏的时候底部LoadMoreView布局显示"无更多数据"然后是占据剩余屏幕高度,当数据超过一屏的话,该布局又是正常高度

@Weimore
Copy link

Weimore commented Aug 24, 2017

请问如何实现既设置分组布局又设置多布局?应该选择继承哪个adapter呢

@CymChad
Copy link
Owner Author

CymChad commented Aug 25, 2017

@Weimore 你直接使用多布局就好了,分组布局本质上就是多布局。

@xingliuhua
Copy link

xingliuhua commented Aug 31, 2017

网格布局加载更多,效果不是很好啊,两列的数据,加载更多只是显示在第一列

@CymChad
Copy link
Owner Author

CymChad commented Aug 31, 2017

@xiaqiuming 你可以新开一个issues,具体说说,你这样的问题描述,我们根本无法解决。

@Reginer
Copy link

Reginer commented Sep 1, 2017

现在多类型的item的方法,在convert(BaseViewHolder helper, MultipleItem item)中,是不是还需要多做一步循环赋值操作,可不可以通过修改获取layout id的方式,而直接继承BaseQuickAdapter来省这一步循环赋值操作 ?

嗯,具体实现,比如这个:https://github.com/qyxxjd/CommonAdapter 里的多布局实现。感觉比现在的多布局实现方式更简便一些。

@CymChad
Copy link
Owner Author

CymChad commented Sep 4, 2017

@Reginer 这种监听式的我们也是支持的具体可见#968

@CymChad CymChad closed this as completed Sep 4, 2017
@CymChad CymChad reopened this Sep 4, 2017
@fgq233
Copy link

fgq233 commented Sep 8, 2017

希望给mHeaderLayout添加一个移出屏幕的监听事件,有时候会有这样的需求:在Header慢慢移出屏幕的时候做动画、或者另外一个View一开始是隐藏的,在Header完全移除屏幕时再显示出来
就像AppBarLayout.OnOffsetChangedListener这个方法差不多

@shingz96
Copy link

请问有没有 数据筛选的功能?

@wallfacert
Copy link

建议把recyclerview兼容版本或者建议版本写上:
我用“com.android.support:recyclerview-v7:21.0.3”item子控件点击事件会报有方法找不到。
换成最新的“com.android.support:recyclerview-v7:25.3.1”结果item条目一个占满一页,相隔很远(原来的代码)。
后来换了个23.1.1的一切OK,其他版本没有尝试。

@guominfang
Copy link
Contributor

建议新增一个方法:判断是否是最后一条item
场景:分割线在item中定义,跟着最后一条item不显示分割线

private boolean isLastPosition(BaseViewHolder helper) {
        int position = helper.getLayoutPosition() - getHeaderLayoutCount();
        position++;
        return position == mData.size();
    }

@Reginer
Copy link

Reginer commented Oct 25, 2017

@guominfang
Copy link
Contributor

@Reginer 嗯,我知道Recyclerview可以使用DividerItemDecoration弄分割线,不过我的用法是在item布局中底部添加一条线,在adapter中来控制,是否显示的

@Jusenr
Copy link

Jusenr commented Oct 30, 2017

建议添加Javadoc 文档 ,谢谢!

@brick-man
Copy link

希望能把Adapter的功能和刷新、加载更多的功能分开成两个库,方便根据自己的需求选择使用。

@CymChad
Copy link
Owner Author

CymChad commented Nov 2, 2017

@Jusenr ju 有文档, @brick-man 这个我们会考虑。

@CymChad
Copy link
Owner Author

CymChad commented Nov 2, 2017

楼层太高不易阅读,新的建议可以放在 #1688

@CymChad CymChad closed this as completed Nov 2, 2017
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