Browse Source

Fix bug 92

zhpanvip 5 năm trước cách đây
mục cha
commit
d95721245b

+ 6 - 4
app/src/main/java/com/example/zhpan/circleviewpager/activity/WelcomeActivity.kt

@@ -59,11 +59,11 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder>
                 .setPageTransformerStyle(transforms[Random().nextInt(6)])
                 .setScrollDuration(ANIMATION_DURATION)
                 .setIndicatorMargin(0, 0, 0, resources.getDimension(R.dimen.dp_100).toInt())
-                .setIndicatorGap(resources.getDimension(R.dimen.dp_10).toInt())
-                .setIndicatorColor(ContextCompat.getColor(this, R.color.white),
+                .setIndicatorSliderGap(resources.getDimension(R.dimen.dp_10).toInt())
+                .setIndicatorSliderColor(ContextCompat.getColor(this, R.color.white),
                         ContextCompat.getColor(this, R.color.white_alpha_75))
                 .setIndicatorSlideMode(IndicatorSlideMode.SMOOTH)
-                .setIndicatorRadius(resources.getDimension(R.dimen.dp_3).toInt(), resources.getDimension(R.dimen.dp_4_5).toInt())
+                .setIndicatorSliderRadius(resources.getDimension(R.dimen.dp_3).toInt(), resources.getDimension(R.dimen.dp_4_5).toInt())
                 .setOnPageChangeListener(object : OnPageChangeListenerAdapter() {
                     override fun onPageSelected(position: Int) {
                         BannerUtils.log("position:$position")
@@ -102,7 +102,9 @@ class WelcomeActivity : BaseDataActivity(), HolderCreator<CustomPageViewHolder>
 
     override fun createViewHolder(): CustomPageViewHolder {
         val customPageViewHolder = CustomPageViewHolder()
-        customPageViewHolder.setOnSubViewClickListener { _, position -> Toast.makeText(this, "Logo Clicked,Item: $position", Toast.LENGTH_SHORT).show() }
+        customPageViewHolder.setOnSubViewClickListener { _, position ->
+            Toast.makeText(this, "Logo Clicked Item: $position,currentItem:${mViewPager.currentItem}", Toast.LENGTH_SHORT).show()
+        }
         return customPageViewHolder
     }
 

+ 15 - 3
app/src/main/java/com/example/zhpan/circleviewpager/fragment/OthersFragment.java

@@ -18,6 +18,7 @@ import com.zhpan.bannerview.constants.IndicatorSlideMode;
 import com.zhpan.bannerview.indicator.IIndicator;
 import com.zhpan.bannerview.indicator.IndicatorView;
 import com.zhpan.bannerview.utils.BannerUtils;
+import com.zhpan.idea.utils.LogUtils;
 import com.zhpan.idea.utils.ToastUtils;
 
 import java.lang.reflect.Field;
@@ -68,10 +69,18 @@ public class OthersFragment extends BaseFragment implements View.OnClickListener
         mIndicatorView = view.findViewById(R.id.indicator_view);
         view.findViewById(R.id.tv_photo_view).setOnClickListener(this);
         view.findViewById(R.id.btn_refresh).setOnClickListener(v -> updateData());
-        mViewPager.setIndicatorGap(BannerUtils.dp2px(6))
+        mViewPager.setIndicatorSliderGap(BannerUtils.dp2px(6))
                 .setRoundCorner(BannerUtils.dp2px(6))
-                .setOnPageClickListener(position -> ToastUtils.show("Position:" + position))
-                .setIndicatorColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
+                .setOnPageClickListener(new BannerViewPager.OnPageClickListener() {
+                    @Override
+                    public void onPageClick(int position) {
+                        ToastUtils.show("position:" + position);
+                        int currentItem = mViewPager.getCurrentItem();
+                        LogUtils.e("currentItem:", currentItem + "");
+                    }
+                })
+//                .setOnPageClickListener(position -> ToastUtils.show("Position:" + position))
+                .setIndicatorSliderColor(getColor(R.color.red_normal_color), getColor(R.color.red_checked_color))
                 .setHolderCreator(() -> new ImageResourceViewHolder(0));
         initRadioGroup();
     }
@@ -164,6 +173,9 @@ public class OthersFragment extends BaseFragment implements View.OnClickListener
         startActivity(new Intent(getActivity(), PhotoViewActivity.class));
     }
 
+    /**
+     * 注意:在项目中不需要使用该方法
+     */
     private void resetBannerViewPager() {
         try {
             Field mIndicatorView = BannerViewPager.class.getDeclaredField("mIndicatorView");

+ 1 - 1
bannerview/build.gradle

@@ -32,7 +32,7 @@ dependencies {
     implementation 'com.android.support:appcompat-v7:27.1.1'
 }
 
-version = "2.7.3"
+version = "2.7.4"
 def siteUrl = 'https://github.com/zhpanvip/BannerViewPager'      // 项目的主页
 def gitUrl = 'https://github.com/zhpanvip/BannerViewPager.git'   // Git仓库的url
 group = "com.zhpan.library" // Maven Group ID for the artifact,一般填你唯一的包名

+ 4 - 5
bannerview/src/main/java/com/zhpan/bannerview/BannerViewPager.java

@@ -277,11 +277,10 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
             throw new NullPointerException("You must set HolderCreator for BannerViewPager");
         }
         currentPosition = 0;
-        if (list.size() > 0 && isCanLoop()) {
-            currentPosition = MAX_VALUE / 2 - ((MAX_VALUE / 2) % list.size()) + 1;
-        }
         mViewPager.setAdapter(getPagerAdapter(list));
-        mViewPager.setCurrentItem(currentPosition);
+        if (list.size() > 1 && isCanLoop()) {
+            mViewPager.setCurrentItem(MAX_VALUE / 2 - ((MAX_VALUE / 2) % list.size()) + 1);
+        }
         mViewPager.removeOnPageChangeListener(this);
         mViewPager.addOnPageChangeListener(this);
         BannerOptions bannerOptions = mBannerManager.bannerOptions();
@@ -333,7 +332,7 @@ public class BannerViewPager<T, VH extends ViewHolder> extends RelativeLayout im
         mViewPager.setOverlapStyle(overlap);
         mViewPager.setPageMargin(overlap ? -bannerOptions.getPageMargin() : bannerOptions.getPageMargin());
         int offScreenPageLimit = bannerOptions.getOffScreenPageLimit();
-        mViewPager.setOffscreenPageLimit(offScreenPageLimit > 2 ? offScreenPageLimit : 2);
+        mViewPager.setOffscreenPageLimit(Math.max(offScreenPageLimit, 2));
         setPageTransformer(new ScaleInTransformer(scale));
     }