Code Monkey home page Code Monkey logo

bgabaseadapter-android's Issues

混淆

建议可以贴出混淆配置来下。

空数据时无法动态添加数据

如果setData(ListData)里的ListData是空List的时候,动态添加数据加不上,但是输出ListData确实是增加条数了。。但是一开始ListData就有数据的话动态添加是毫无问题的。代码来来回回的看了几十遍也没看出来哪的问题,不确定是控件的问题还是我自己代码本身的问题,其他人有遇到过这种情况吗?

添加头和尾

添加HeaderView、FooterView ?? 没发现有添加头部和尾部的方法,看能不能加上,

多item

多中不同的item如何实现?

多条目type的时候局部刷新错位

多条目item与addHeaderView结合的时候,局部刷新notifyItemChanged控制某个view显示隐藏无效--没反应动静;用notifyDataSetChanged全局刷新也无效;用notifyItemChangedWrapper局部刷新错位;麻烦博主给下答复!谢谢

显示错位

当一个页面有上下两个recyclerview时候,上面是gridmanager 下面是linmanager ,当页面被销毁(旋转屏幕时),上面grid的就是显示乱, 就是每个item的高度都会变成屏幕的高,上下两个recyclerview的高均设置为 wrap ,用原生的写法是完全没问题的

拷贝源码到bgaphotopicker,编译databind出错

由于需要去掉bgaphotopicker的依赖,将bgaadapter 拷贝源码到bgaphotopicker的library中,包名不变,编译databind出错,提示log如下。

D:\AndroidProject\BGAPhotoPicker-Android\library\src\main\java\cn\bingoogolapple\androidcommon\adapter\BGABindingRecyclerViewAdapter.java:91: 错误: 找不到符号
        binding.setVariable(cn.bingoogolapple.androidcommon.adapter.BR.viewHolder, viewHolder);
                                                                   ^
  符号:   类 BR
  位置: 程序包 cn.bingoogolapple.androidcommon.adapter
D:\AndroidProject\BGAPhotoPicker-Android\library\src\main\java\cn\bingoogolapple\androidcommon\adapter\BGABindingRecyclerViewAdapter.java:92: 错误: 找不到符号
        binding.setVariable(cn.bingoogolapple.androidcommon.adapter.BR.model, model);
                                                                   ^
  符号:   类 BR
  位置: 程序包 cn.bingoogolapple.androidcommon.adapter
D:\AndroidProject\BGAPhotoPicker-Android\library\src\main\java\cn\bingoogolapple\androidcommon\adapter\BGABindingRecyclerViewAdapter.java:93: 错误: 找不到符号
        binding.setVariable(cn.bingoogolapple.androidcommon.adapter.BR.itemEventHandler, mItemEventHandler);
                                                                   ^
  符号:   类 BR
  位置: 程序包 cn.bingoogolapple.androidcommon.adapter

错误位置

     B binding = viewHolder.getBinding();
        binding.setVariable(cn.bingoogolapple.androidcommon.adapter.BR.viewHolder, viewHolder);
        binding.setVariable(cn.bingoogolapple.androidcommon.adapter.BR.model, model);
        binding.setVariable(cn.bingoogolapple.androidcommon.adapter.BR.itemEventHandler, mItemEventHandler);

没有对最新的diffutils支持

您好,27.1.1版本的RecyclerView新增了一个ListAdapter,主是用与RecyclerView的局部更新,从而提高页面刷新效率.希望作者可以扩展一下BGARecyclerViewAdapter支持ListAdapter的功能

使用该适配器设置嵌套ListView问题

你好,在尝试使用您的适配器库 加载嵌套ListView时,对ViewHolderHelper扩充了一点设置子ListView的方法如下:
/**
*
* @param viewId
* @return
*/
public BGAViewHolderHelper setChildListView(@idres int viewId){
childListView = (ListView) getView(viewId);
return this;
}

/**
 * @param childListViewAdapter
 * @return
 */
public BGAViewHolderHelper setChildListViewAdapter(BGAAdapterViewAdapter childListViewAdapter){
    this.childListView.setAdapter(childListViewAdapter);
    return this;
}

/**
 * 设置子listView 的selector
 * @param drawable
 * @return
 */
public BGAViewHolderHelper setChildListViewSelector(Drawable drawable){
    this.childListView.setSelector(drawable);
    return this;
}

public BGAViewHolderHelper setChildListViewDivider(Drawable divider){
    this.childListView.setDivider(divider);
    return this;
}

public BGAViewHolderHelper setChildListViewDividerHeight(int height){
    this.childListView.setDividerHeight(height);
    return this;
}

/**
 * 在存在子ListView的情况下,子listview填充完数据之后 重新计算父listview高度
 * @return
 */
public BGAViewHolderHelper resetListViewHeight(){
    ViewUtil.setListViewHeightBasedOnChildren(this.childListView);
    return this;
}

在fillData里设置子ListVIew相关信息:
@OverRide
protected void fillData(BGAViewHolderHelper viewHolderHelper, int position, Order model) {
viewHolderHelper.setText(R.id.orderNum,model.getNumber());
viewHolderHelper.setText(R.id.orderType,model.getType());
viewHolderHelper.setText(R.id.custName,model.getUserName());
viewHolderHelper.setText(R.id.custPhone,model.getUserPhone());
viewHolderHelper.setText(R.id.custAddress,model.getUserAddress());
viewHolderHelper.setText(R.id.deliTime, model.getDeliTime());
viewHolderHelper.setText(R.id.deliStatus,model.getDeliStatus());

    _goodsAdapter = new GoodsAdapterTest(_context);//也是继承自BAGAdatperViewAdapter
    _goodsAdapter.setDatas(model.getGoods());
    viewHolderHelper.setChildListView(R.id.goods_list)
             .setChildListViewAdapter(_goodsAdapter)

// .setChildListViewSelector(new ColorDrawable(Color.WHITE))
.setChildListViewDivider(new ColorDrawable(Color.WHITE))
.setChildListViewDividerHeight(1)
.resetListViewHeight();
}现在的疑问是 如何把子ListView的item点击事件 传递到activity,因为子ListView需要多个adapter,直接把_goodsAdapter透给activity行不通,有什么建议吗

demo报错了

2019-03-07 10:33:22.598 4798-4798/cn.bingoogolapple.baseadapter.demo E/AndroidRuntime: FATAL EXCEPTION: main
    Process: cn.bingoogolapple.baseadapter.demo, PID: 4798
    java.lang.NullPointerException: Attempt to read from field 'java.util.List cn.bingoogolapple.baseadapter.demo.model.BannerModel.imgs' on a null object reference
        at cn.bingoogolapple.baseadapter.demo.ui.fragment.RvBindingFragment$8.onResponse(RvBindingFragment.java:214)
        at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
        at android.os.Handler.handleCallback(Handler.java:793)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:173)
        at android.app.ActivityThread.main(ActivityThread.java:6698)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)

建议: BGABaseAdapterUtil 获取 Application时不要调用隐藏 API;改为让调用者传递吧。

BGABaseAdapterUtil 获取 Application时不要调用隐藏 API;
public class BGABaseAdapterUtil {
private static Application sApp;

static {
    Application app = null;
    try {
        app = (Application) Class.forName("android.app.AppGlobals").getMethod("getInitialApplication").invoke(null);
        if (app == null)
            throw new IllegalStateException("Static initialization of Applications must be on main thread.");
    } catch (final Exception e) {
        Log.e(BGABaseAdapterUtil.class.getSimpleName(), "Failed to get current application from AppGlobals." + e.getMessage());
        try {
            app = (Application) Class.forName("android.app.ActivityThread").getMethod("currentApplication").invoke(null);
        } catch (final Exception ex) {
            Log.e(BGABaseAdapterUtil.class.getSimpleName(), "Failed to get current application from ActivityThread." + e.getMessage());
        }
    } finally {
        sApp = app;
    }
}

}

建议让调用者传过来吧。这样很容易出问题。

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.