Giter VIP home page Giter VIP logo

banner's Issues

banner 上有视频播放器 会冲突的问题

作者好 , 我在首页banner 上面放着有 视频播放器, 那个banner库 重写了dispatchTouchEvent, 执行按下 暂停轮播,松开继续轮播的效果。。。和视频播放起冲突起来了,,, 点击视频播放器, 会浮现各个功能按钮出来嘛,, 现在 点下视频播放器,2S后 就自个儿轮播了。。。这个有什么好的解决办法没呀

混淆问题

开启了混淆后会有问题,设置间距无效,指示器不动,不能无限循环

bug:自动播放时一次跳两页

startTurning 连续调用会导致 task 被重复执行,我这里表现的bug就是一次跳两页

解决办法:

public void stopTurning() {
        removeCallbacks(task);
}

改成:

private final Handler handler = new Handler(Looper.getMainLooper());
public synchronized void stopTurning() {
        handler.removeCallbacksAndMessages(null);
    }

嵌套ViewPager2的一个小问题

把Banner嵌套在ViewPager里面,现在是Banner滑动完毕会触发外面嵌套的ViewPager的滑动。
如果可以,希望增加一个完全拦截滑动的设置,就是Banner滑动到最后一个再滑动,不会滑动外面的pager,而是把banner滑动到第一个。

魅族 m2 e Android 6.0.1 崩溃

03-11 12:12:07.419 31229-31229 E/CrashReport: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean androidx.recyclerview.widget.RecyclerView.canScrollVertically(int)' on a null object reference
at androidx.recyclerview.widget.RecyclerView$LayoutManager.onInitializeAccessibilityNodeInfo(RecyclerView.java:10378)
at androidx.viewpager2.widget.ViewPager2$LinearLayoutManagerImpl.onInitializeAccessibilityNodeInfo(ViewPager2.java:1017)
at com.to.aboomy.pager2.Banner$ProxyLayoutManger.onInitializeAccessibilityNodeInfo(Banner.java:318)
at androidx.recyclerview.widget.RecyclerView$LayoutManager.onInitializeAccessibilityNodeInfo(RecyclerView.java:10348)
at androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityNodeInfo(RecyclerViewAccessibilityDelegate.java:74)
at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompat.java:86)
at android.view.View.onInitializeAccessibilityNodeInfo(View.java:6217)
at android.view.View.createAccessibilityNodeInfoInternal(View.java:6178)
at android.view.View$AccessibilityDelegate.createAccessibilityNodeInfo(View.java:22870)
at android.view.View.createAccessibilityNodeInfo(View.java:6161)
at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:145)
at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:119)
at android.view.View.onInitializeAccessibilityEventInternal(View.java:6115)
at android.view.View$AccessibilityDelegate.onInitializeAccessibilityEvent(View.java:22782)
at androidx.core.view.AccessibilityDelegateCompat.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:256)
at androidx.recyclerview.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate.java:80)
at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:76)
at android.view.View.onInitializeAccessibilityEvent(View.java:6101)
at androidx.viewpager2.widget.ViewPager2$RecyclerViewImpl.onInitializeAccessibilityEvent(ViewPager2.java:982)
at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5968)
at android.view.View$AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:22721)
at androidx.core.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:195)
at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:112)
at android.view.View.sendAccessibilityEventUnchecked(View.java:5951)
at androidx.recyclerview.widget.RecyclerView.sendAccessibilityEventUnchecked(RecyclerView.java:3736)
at android.view.View.sendAccessibilityEventInternal(View.java:5930)
at android.view.View$AccessibilityDelegate.sendAccessibilityEvent(View.java:22679)
at androidx.core.view.AccessibilityDelegateCompat.sendAccessibilityEvent(AccessibilityDelegateCompat.java:173)
at androidx.core.view.AccessibilityDelegateCompat$AccessibilityDelegateAdapter.sendAccessibilityEvent(AccessibilityDelegateCompat.java:107)
at android.view.View.sendAccessibilityEvent(View.java:5895)
at android.view.View$SendViewScrolledAccessibilityEvent.run(View.java:22597)
at android.os.Handler.handleCallback(Handler.java:815)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:191)
at android.app.ActivityThread.main(ActivityThread.java:5960)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:821)
03-11 12:12:07.419 31229-31229 E/CrashReport: #++++++++++++++++++++++++++++++++++++++++++#

page 0時 ui error

當我輪播時
到第二輪 page 0
最右邊不會出現page1的畫面
而是會透到底層的fragment
原本的banner沒這個問題
.setPageMargin(UIUtil.dip2px(this, 20), UIUtil.dip2px(this, 10))

我的banner无法一直无限滑动

我写了Demo是没有问题的,可以一直划,但是加到项目中就不能无限滑动,使用的是com.to.aboomy.pager2banner.Banner,自己实现了recyclerviewadapter 轮播不同样式的布局.
比如我有3条数据,实际banner在左右各新增了一条,也就是这个库的实现原理,但是划到头的时候并没有切到最后一个,求解答

反射失效

位置:

final class PageTransformerAdapter extends OnPageChangeCallback {
    private final LinearLayoutManager mLayoutManager;

报错:

12-30 17:14:23.466 16738-16738/com.glow.android.beta W/System.err: java.lang.NoSuchFieldException: No field mLayoutManager in class Landroidx/viewpager2/widget/PageTransformerAdapter; (declaration of 'androidx.viewpager2.widget.PageTransformerAdapter' appears in /data/app/com.glow.android.beta-2/base.apk)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at java.lang.Class.getDeclaredField(Native Method)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.glow.android.ui.widget.banner.Banner.q(SourceFile:254)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.glow.android.ui.widget.banner.Banner.r(SourceFile:69)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.glow.android.ui.widget.banner.Banner.<init>(SourceFile:59)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.glow.android.ui.widget.banner.Banner.<init>(SourceFile:53)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at java.lang.reflect.Constructor.newInstance(Native Method)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.createView(LayoutInflater.java:631)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:776)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:847)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:855)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:810)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:527)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:429)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:380)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at androidx.appcompat.app.AppCompatDelegateImpl.w(SourceFile:469)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at androidx.appcompat.app.AppCompatActivity.setContentView(SourceFile:140)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.glow.android.ui.pregnant.SwitchToPregnancyActivity.onCreate(SourceFile:55)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.Activity.performCreate(Activity.java:6876)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1135)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3207)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3350)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.ActivityThread.access$1100(ActivityThread.java:222)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1795)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:102)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.os.Looper.loop(Looper.java:158)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at android.app.ActivityThread.main(ActivityThread.java:7229)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at java.lang.reflect.Method.invoke(Native Method)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
12-30 17:14:23.476 16738-16738/com.glow.android.beta W/System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

banner點擊兩側 position錯誤

val adapter = OriginVideoAdapter(R.layout.item_origin_banner, arrayListOf())

    adapter.setOnItemClickListener { holder, view, position ->
        Timber.tag("ddd").i("click $position")
        Timber.tag("ddd").i("click2 "+mBanner?.currentPager)
    }

你好 我是用viewpager2版本
我的banner有留左右的影片 也就是一頁三式
但當我點擊非中間的影片時
get的current position仍是中間的
但setOnItemClickListener的position位置會是正確的(可是他不是data實際的position)
請問我想要監聽是否點擊 兩側的影片
要如何取到他的值?

BaseQuickAdapter get item

你好
再問一個問題
我的需求是
能在banner顯示時 再BaseQuickAdapter內執行ui上某件事
但我觀察convert是一次創好的
這樣我要如何才能抓到實際上position的view item?

循环拖动

请问博主,viewPager2 可以循环拖动,这个主要的控制代码是哪些? 想借鉴一下如何实现的,但是看了代码没有找到这部分

暗黑模式切换

作者大大
我在执行 AppCompatDelegate.setDefaultNightMode(MODE_NIGHT_YES);
进行暗黑模式切换后轮播卡顿,求解答

设置指示器的圆点距离底部的距离问题;

    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
    params.addRule(RelativeLayout.CENTER_HORIZONTAL);
    params.bottomMargin = CommonUtil.dip2px(12);

    IndicatorView indicatorView = new IndicatorView(getActivity())
            .setIndicatorRatio(1f) //ratio,默认值是1 ,也就是说默认是圆点,根据这个值,值越大,拉伸越长,就成了矩形,小于1,就变扁了
            .setIndicatorRadius(4f) //radius 点的大小
            .setIndicatorSelectedRatio(1f)
            .setIndicatorSelectedRadius(4f)
            .setIndicatorSpacing(6f)
            .setIndicatorStyle(IndicatorView.IndicatorStyle.INDICATOR_CIRCLE)
            .setIndicatorColor(getResources().getColor(R.color.color_4b525f))
            .setParams(params)
            .setIndicatorSelectorColor(getResources().getColor(R.color.color_FFE7B6));

params.bottomMargin = CommonUtil.dip2px(12); 设置指示器的圆点距离底部的距离,.setParams(params)在一些布局场景,会无效。距离底部距离为0

debug正常,而release打包异常

1.0.5中,如果debug正常,而release版本异常。可能是因为com.to.aboomy.pager2banner.Banner#initViewPagerScrollProxy()中使用了反射,需要增加相应混淆规则。

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.