Giter VIP home page Giter VIP logo

banner's Introduction

About me

Android Engineer !

Languages and Tools:

banner's People

Contributors

zguop 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

banner's Issues

循环拖动

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

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

    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

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

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

解决办法:

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

改成:

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

page 0時 ui error

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

嵌套ViewPager2的一个小问题

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

暗黑模式切换

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

魅族 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: #++++++++++++++++++++++++++++++++++++++++++#

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)
請問我想要監聽是否點擊 兩側的影片
要如何取到他的值?

debug正常,而release打包异常

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

我的banner无法一直无限滑动

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

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

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

反射失效

位置:

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)

混淆问题

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

BaseQuickAdapter get item

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

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.