Giter VIP home page Giter VIP logo

superadapter's Issues

Note: Do not bind click listener in onBind(). 不要在onBind()中绑定点击事件.

If you want to bind click listener to a subview of itemView:
item中的某个子view需要绑定点击事件:

   @Override
    public SuperViewHolder onCreate(View convertView, ViewGroup parent, int viewType) {
        SuperViewHolder holder = super.onCreate(convertView, parent, viewType);
        holder.findViewById(id).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // just like this, good luck!
            }
        });
        return holder;
    }

addAll 方法里面增加一个清空并添加的方法

addAll(List items,Boolean isClear)

如果isClear是true,那么就先把之前的items清空,然后在把最新的items赋值给items。

这个方法在下拉刷新和上拉加载的时候,用的特别平凡。 下拉刷新的时候就得把之前的集合全清空,然后把最新的数据赋值给List items,而当上拉加载的时候就是不清空,在老数据之后添加数据

3.1->3.2 更新了什么东西?

之前用的 3.0.0 直接更新到3.3下拉刷新出错了,
列表增加了Header,

试了几次之后,发现是 3.1 - > 3.2 出错。

image

RecyclerView怎样更改当前item的值?

在弄 购物车点击增加num++,想要保存当前的值
以下方法会报错
item.setNum(num);
set(layoutPosition,item);
以下方法没效果
mData.get(layoutPosition).setNum(num);
本来3.1版本,更换3.6版本还是这样

提个场景不知道这样的改进好不好

fragment中含list使用superAdapter 发起请求迅速finish activity会报"getSystemService"on a null object reference明显是context为空了导致LayoutInflater.from(context)的crash

改进方法:在LayoutInflater.from(context)前判空 否则的话我现在都是在new xxAdapter前判空 还挺麻烦的

最新版怎么添加 - -

compile 'org.byteam.superadapter:superadapter:3.0.0-alpha1'
或者
compile 'org.byteam.superadapter:superadapter:3.0.0'

都不可以。

为什么没有setNewData这类方法?

分页加载,下拉刷新,把原先的数据全部移除,再添加新内容。
只能用clear()再addAll()曲线救国,而且clear()会报错

Inconsistency detected. Invalid view holder adapter positionViewHolder

只能再重新调用下notifyDataSetChanged()才避免报错。
相关代码如下:

@Override
    public void setData(List<Article> data) {
        if (page == 0) {
            mArticles.clear();
            mAdapter.clear();
            mAdapter.notifyDataSetChanged();//不要这句会报错
        }
        mArticles.addAll(data);
        mAdapter.addAll(data);
        page++;
        stopRefreLoad();
    }

建议增加一个 清空数据重新添加数据的方法

有一种场景是大多数人都会遇到,下拉刷新的时候....会先清空适配器里面的所有 数据,然后在重新添加最新的数据....SuperAdapter 就会先clear notifyDataSetChanged一次,然后addall 会在次调用notifyDataSetChanged 一次...所以添加一个这样的方法可以少调用一次notifyDataSetChanged

LinearLayoutManager footView宽度不能占全屏

LinearLayoutManager footView宽度不能占全屏

StaggeredGridLayoutManager SGlayoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
代替后上拉加载更多后报错,LinearLayoutManager 可以正常上拉加载更多
java.lang.ArrayIndexOutOfBoundsException
src.length=11 srcPos=10 dst.length=11 dstPos=20 length=-9
java.lang.System.arraycopy(Native Method)

关于item的填充损耗问题

在源码中我看到onCreate()方法的具体实现的是偶发现,每一次都会根据layoutId来inflate一个view,但是每次inflate这个view就会产生损耗,而且能够复用convertView的时候也会inflate这个view。

使用SuperAdapter.add(...)或addAll(...)更新数据异常闪退

使用demo中的MultipleAdapter,在获取数据后调用adapter.add(...)或adapter.addAll(...)更新数据一直报如下异常

java.lang.RuntimeException: Failed to resolve attribute at index 6
at android.content.res.TypedArray.getLayoutDimension(TypedArray.java:636)
at android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:6486)
at android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:6654)
at android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1895)
at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1807)
at android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:62)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:827)
at android.view.LayoutInflater.inflate(LayoutInflater.java:523)
at android.view.LayoutInflater.inflate(LayoutInflater.java:425)
at com.lichfaker.lib.common.views.refresh.SuperAdapter.onCreate(SuperAdapter.java:47)
at com.lichfaker.lib.common.views.refresh.SuperAdapter.onCreate(SuperAdapter.java:17)
at com.lichfaker.lib.common.views.refresh.internal.BaseSuperAdapter.onCreateViewHolder(BaseSuperAdapter.java:287)
at com.lichfaker.lib.common.views.refresh.internal.BaseSuperAdapter.onCreateViewHolder(BaseSuperAdapter.java:28)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:5464)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4689)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4599)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1988)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1384)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1347)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3003)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2881)
at android.support.v7.widget.RecyclerView.consumePendingUpdateOperations(RecyclerView.java:1457)
at android.support.v7.widget.RecyclerView.access$400(RecyclerView.java:147)
at android.support.v7.widget.RecyclerView$1.run(RecyclerView.java:285)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:799)
at android.view.Choreographer.doCallbacks(Choreographer.java:612)
at android.view.Choreographer.doFrame(Choreographer.java:580)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:785)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5593)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:967)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:762)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.