Code Monkey home page Code Monkey logo

bgabaseadapter-android's People

Contributors

bingoogolapple avatar gitter-badger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bgabaseadapter-android's Issues

混淆

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

使用该适配器设置嵌套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行不通,有什么建议吗

没有对最新的diffutils支持

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

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)

拷贝源码到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);

多item

多中不同的item如何实现?

显示错位

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

建议: 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;
    }
}

}

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

添加头和尾

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

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

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

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

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

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.