Giter VIP home page Giter VIP logo

banner's Issues

修改绘制顺序问题

你好,多屏显示的时候,我想修改viewpager的绘制顺序已到达中间的卡片是显示在两侧卡片之上,但是BannerViewPager中的getCurrentItem()返回2000多

指示器为数字时出现数组下标越界

在 Banner 类中的 onPageSelected(int position) 函数中,与 youth5201314 的比较少了一下两行
...
if (position == 0) position = count;
if (position > count) position = 1;
...
导致出现数组下标越界

【建议】实现LifecycleObserver

在Banner中实现LifecycleObserver接口,这样的话使用AppCompatActivity就不需要手动在onResume和onPause中去satr和stop了。只需要lifecycle.addObserver(banner)
代码

class MyBanner : Banner, LifecycleObserver {
    constructor(context: Context?) : super(context)
    constructor(context: Context?, attrs: AttributeSet?) : super(context, attrs)

    @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
    fun onResume() {
        startAutoPlay()
    }

    @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
    fun onPause() {
        stopAutoPlay()
    }

}

怎么设置指示器大小

用资源图片作为指示器时,怎么设置指示器大小。
同时怎么设置指示器和banner的间距,让其距离banner图片较远。
banner.setIndicatorRes(R.drawable.banner_indicator, R.drawable.banner_indicator_selected);

java.lang.IllegalStateException

java.lang.IllegalStateException

The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 7, found: 2 Pager id: xxx.xxx.xxx:id/bannerViewPager Pager class: class com.ms.banner.view.BannerViewPager Problematic adapter: class com.ms.banner.Banner$BannerPagerAdapter

banner引入xml布局里面报错

包名都写对了,也跟着步骤来了。
Caused by: android.view.InflateException: Binary XML file line #139: Error inflating class com.ms.banner.Banner

图片消失

我现在tab+viewpager+fragment,第一个tab下顶部有banner(本框架),然后我一直切换tab项,再切换回第一个tab,banner里的轮播图会消失

性能问题

hello,无限轮播的时候,一直调用holder的createView,里面不断通过LayoutInflater填充生成View,这会有性能问题吧,感觉holder没起到复用的作用。

关于卡片模式下只有一个Item时的优化

如果list只有一项,显示的时候左右都会多出一点,给人还有多余项目的错觉,所以在BannerPagerAdapter的getCount方法中最好做出如下判断:
@OverRide
public int getCount() {
if(mDatas.size() == 1){
return mDatas.size();
}else {
return mDatas.size() + 2;
}

    }

这样就没有问题了。

轮播recycleView,默认先显示的是posiion1 不是0

如题:
List<List> splitList = CollectionUtils.getSplitList(strings, 8);
bannerPingpai.setBannerStyle(BannerConfig.NOT_INDICATOR);
bannerPingpai.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@OverRide
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

        }

        @Override
        public void onPageSelected(int position) {
            ToastUitl.showShort(position + "");
        }

        @Override
        public void onPageScrollStateChanged(int state) {

        }
    });
    bannerPingpai.setPages(splitList, new HolderCreator<BannerViewHolder>() {
        @Override
        public BannerViewHolder createViewHolder() {
            return new CustomViewHolder();
        }
    }).start();

class CustomViewHolder implements BannerViewHolder<List> {

    @BindView(R.id.recyclerView)
    RecyclerView mRecyclerView;


    @Override
    public View createView(Context context) {
        View view = LayoutInflater.from(context).inflate(R.layout.item_wholesale_pingpai_layout, null);
        ButterKnife.bind(this, view);
        return view;
    }

    @Override
    public void onBind(Context context, int position, List<String> data) {
        /**/ 数据绑定,这里先加载的是大list的第二个元素**
        PingPaiHotAdapter mPingPaiHotAdapter = new PingPaiHotAdapter(data);
        mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 4));
        mRecyclerView.setAdapter(mPingPaiHotAdapter);
        mPingPaiHotAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
            @Override
            public void onItemClick(BaseQuickAdapter adapter, View view, int position) {
                String item = mPingPaiHotAdapter.getItem(position);
                ToastUitl.showShort(item);
            }
        });
    }
}

依赖报错

ERROR: Failed to resolve: com.github.wenchaosong:Banner:2.3.7
Show in Project Structure dialog
Affected Modules: app

圆角轮播设置问题

一个Activity中多个fragment,其中一个fragment的轮播图设置了圆角,其他的也自动变为圆角,不能设置为无圆角效果。老铁们,这个是什么问题?

同学你好,有个问题想问一下

这个banner使用挺好的 有一个问题,就是我设置banner图片为圆角图片了,根布局使用cardView实现的,banner切换滑动的时候,圆角careView就变了直角,请问大概是什么原因呢

在RecyclerView中下拉刷新会报错

在RecyclerView中下拉刷新会报错
错误如下:
java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged! Expected adapter item count: 1000, found: 0 Pager id: cn.zhouheiya.app:id/bannerViewPager Pager class: class com.ms.banner.view.BannerViewPager Problematic adapter: class com.ms.banner.Banner$BannerPagerAdapter
at android.support.v4.view.ViewPager.populate(ViewPager.java:1135)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1084)
at android.support.v4.view.ViewPager$3.run(ViewPager.java:267)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1065)
at android.view.Choreographer.doCallbacks(Choreographer.java:877)
at android.view.Choreographer.doFrame(Choreographer.java:805)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1051)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6806)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:522)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)

我是这样使用的
image
image

求指教啊 大佬

文档最好加上混淆规则

glide 的混淆代码

-keep public class * implements com.bumptech.glide.module.GlideModule
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
**[] $VALUES;
public *;
}

banner 的混淆代码

-keep class com.ms.banner.** {
*;
}

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.