From a2c7ba6b24a144781fe3d23671f10a82d9694099 Mon Sep 17 00:00:00 2001
From: wangxc <1028729086@qq.com>
Date: Thu, 27 May 2021 10:22:21 +0800
Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E5=A4=8D=EF=BC=8Ckotlin=E4=BD=BF?=
=?UTF-8?q?=E7=94=A8demo=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Change-Id: I070e509d5241a11a6e306d0a3cf5809a42e01a5f
---
README.md | 2 +-
app/build.gradle | 22 ++--
.../java/com/test/banner/MainActivity.java | 22 ++--
app/src/main/res/layout/activity_main.xml | 7 +-
app/src/main/res/layout/banner_image.xml | 2 +-
banner/build.gradle | 6 +-
.../main/java/com/youth/banner/Banner.java | 107 +++++++++---------
.../youth/banner/adapter/BannerAdapter.java | 5 +-
update_message.md | 7 ++
usekotlin/build.gradle | 8 +-
...{BannerImageAdapter.kt => ImageAdapter.kt} | 17 +--
.../java/com/spring/usekotlin/MainActivity.kt | 39 +++----
.../src/main/res/layout/activity_main.xml | 10 +-
13 files changed, 127 insertions(+), 127 deletions(-)
rename usekotlin/src/main/java/com/spring/usekotlin/{BannerImageAdapter.kt => ImageAdapter.kt} (63%)
diff --git a/README.md b/README.md
index 34ee1b54..b3013890 100644
--- a/README.md
+++ b/README.md
@@ -145,7 +145,7 @@ dependencies{
//2.1.0以前jcenter的依赖
//implementation 'com.youth.banner:banner:2.1.0'
//现在Maven Central
- implementation 'io.github.youth5201314:banner:2.2.1'
+ implementation 'io.github.youth5201314:banner:2.2.2'
}
```
diff --git a/app/build.gradle b/app/build.gradle
index cc212efa..4fed9a85 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,7 +5,7 @@ android {
defaultConfig {
applicationId "com.test.banner"
- minSdkVersion 19
+ minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
@@ -30,23 +30,23 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation 'androidx.appcompat:appcompat:1.3.0-alpha01'
- implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha04'
+ implementation 'androidx.appcompat:appcompat:1.1.0'
+ implementation 'androidx.recyclerview:recyclerview:1.2.0'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation 'androidx.viewpager2:viewpager2:1.0.0'
+ implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01'
implementation 'androidx.viewpager:viewpager:1.0.0'
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.2'
implementation 'androidx.cardview:cardview:1.0.0'
- implementation 'com.github.bumptech.glide:glide:4.11.0'
- annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'
- implementation 'com.google.android.material:material:1.1.0'
- implementation 'com.jakewharton:butterknife:10.2.1'
- annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
+ implementation 'com.github.bumptech.glide:glide:4.12.0'
+ annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'
+ implementation 'com.google.android.material:material:1.2.0-alpha06'
+ implementation 'com.jakewharton:butterknife:10.2.3'
+ annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
implementation 'com.shuyu:GSYVideoPlayer:7.1.3'
-// implementation project(':banner')
- implementation 'io.github.youth5201314:banner:2.2.1'
+ implementation project(':banner')
+// implementation 'io.github.youth5201314:banner:2.2.1'
}
diff --git a/app/src/main/java/com/test/banner/MainActivity.java b/app/src/main/java/com/test/banner/MainActivity.java
index 9841dac0..16e6e6c7 100644
--- a/app/src/main/java/com/test/banner/MainActivity.java
+++ b/app/src/main/java/com/test/banner/MainActivity.java
@@ -72,15 +72,17 @@ protected void onCreate(Bundle savedInstanceState) {
//和下拉刷新配套使用
refresh.setOnRefreshListener(() -> {
//模拟网络请求需要3秒,请求完成,设置setRefreshing 为false
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- refresh.setRefreshing(false);
- //给banner重新设置数据
- banner.setDatas(DataBean.getTestData());
- //对setdatas不满意?你可以自己在adapter控制数据,可以参考setDatas()的实现修改
-// adapter.updateData(DataBean.getTestData2());
- }
+ new Handler().postDelayed(() -> {
+ refresh.setRefreshing(false);
+
+ //给banner重新设置数据
+ banner.setDatas(DataBean.getTestData());
+
+ //对setDatas()方法不满意?你可以自己在adapter控制数据,参考setDatas()的实现修改
+// adapter.updateData(DataBean.getTestData());
+// banner.setCurrentItem(banner.getStartPosition(), false);
+// banner.setIndicatorPageChange();
+
}, 3000);
});
@@ -115,7 +117,7 @@ public void click(View view) {
break;
case R.id.style_multiple:
refresh.setEnabled(true);
- banner.setIndicator(new DrawableIndicator(this,R.drawable.indicator_normal,R.drawable.indicator_selected));
+ banner.setIndicator(new CircleIndicator(this));
banner.setAdapter(new MultipleTypesAdapter(this, DataBean.getTestData()));
break;
case R.id.style_net_image:
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 7fd26653..9a92784f 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -17,7 +17,7 @@
android:layout_margin="10dp"
banner:banner_indicator_normal_color="@android:color/white"
banner:banner_indicator_selected_color="@color/colorPrimary"
- banner:banner_radius="5dp" />
+ banner:banner_radius="5dp"/>
diff --git a/app/src/main/res/layout/banner_image.xml b/app/src/main/res/layout/banner_image.xml
index 04362443..233330fd 100644
--- a/app/src/main/res/layout/banner_image.xml
+++ b/app/src/main/res/layout/banner_image.xml
@@ -3,4 +3,4 @@
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:scaleType="fitXY"/>
\ No newline at end of file
+ android:scaleType="centerCrop"/>
\ No newline at end of file
diff --git a/banner/build.gradle b/banner/build.gradle
index 638bafa3..6ec967f5 100644
--- a/banner/build.gradle
+++ b/banner/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
apply plugin: 'maven-publish'
apply plugin: 'signing'
-version = '2.2.1'
+version = '2.2.2'
android {
compileSdkVersion 30
@@ -10,7 +10,7 @@ android {
defaultConfig {
minSdkVersion 14
targetSdkVersion 30
- versionCode 202001
+ versionCode 202002
versionName version
consumerProguardFiles 'proguard-rules.pro'
}
@@ -26,7 +26,7 @@ android {
}
dependencies {
- implementation "androidx.viewpager2:viewpager2:1.0.0"
+ implementation "androidx.viewpager2:viewpager2:1.1.0-alpha01"
}
task androidSourcesJar(type: Jar) {
diff --git a/banner/src/main/java/com/youth/banner/Banner.java b/banner/src/main/java/com/youth/banner/Banner.java
index ee05de9e..8259351e 100644
--- a/banner/src/main/java/com/youth/banner/Banner.java
+++ b/banner/src/main/java/com/youth/banner/Banner.java
@@ -51,10 +51,10 @@
import static java.lang.annotation.RetentionPolicy.SOURCE;
-public class Banner> extends FrameLayout implements BannerLifecycleObserver {
+public class Banner> extends FrameLayout implements BannerLifecycleObserver {
public static final int INVALID_VALUE = -1;
private ViewPager2 mViewPager2;
- private AutoLoopTask mLoopTask;
+ private AutoLoopTask mLoopTask;
private OnPageChangeListener mOnPageChangeListener;
private BA mAdapter;
private Indicator mIndicator;
@@ -131,7 +131,7 @@ private void init(Context context) {
mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop() / 2;
mCompositePageTransformer = new CompositePageTransformer();
mPageChangeCallback = new BannerOnPageChangeCallback();
- mLoopTask = new AutoLoopTask(this);
+ mLoopTask = new AutoLoopTask(this);
mViewPager2 = new ViewPager2(context);
mViewPager2.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
mViewPager2.setOffscreenPageLimit(2);
@@ -141,7 +141,7 @@ private void init(Context context) {
addView(mViewPager2);
mRoundPaint = new Paint();
- mRoundPaint.setColor(Color.TRANSPARENT);
+ mRoundPaint.setColor(Color.WHITE);
mRoundPaint.setAntiAlias(true);
mRoundPaint.setStyle(Paint.Style.FILL);
mRoundPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_OUT));
@@ -408,16 +408,16 @@ public void onPageScrollStateChanged(int state) {
}
- static class AutoLoopTask> implements Runnable {
- private final WeakReference> reference;
+ static class AutoLoopTask implements Runnable {
+ private final WeakReference reference;
- AutoLoopTask(Banner banner) {
+ AutoLoopTask(Banner banner) {
this.reference = new WeakReference<>(banner);
}
@Override
public void run() {
- Banner banner = reference.get();
+ Banner banner = reference.get();
if (banner != null && banner.mIsAutoLoop) {
int count = banner.getItemCount();
if (count == 0) {
@@ -540,7 +540,7 @@ public int getRealCount() {
* @param intercept
* @return
*/
- public Banner setIntercept(boolean intercept) {
+ public Banner setIntercept(boolean intercept) {
isIntercept = intercept;
return this;
}
@@ -550,7 +550,7 @@ public Banner setIntercept(boolean intercept) {
* @param position
* @return
*/
- public Banner setCurrentItem(int position) {
+ public Banner setCurrentItem(int position) {
return setCurrentItem(position, true);
}
@@ -560,12 +560,12 @@ public Banner setCurrentItem(int position) {
* @param smoothScroll
* @return
*/
- public Banner setCurrentItem(int position, boolean smoothScroll) {
+ public Banner setCurrentItem(int position, boolean smoothScroll) {
getViewPager2().setCurrentItem(position, smoothScroll);
return this;
}
- public Banner setIndicatorPageChange() {
+ public Banner setIndicatorPageChange() {
if (getIndicator() != null) {
int realPosition = BannerUtils.getRealPosition(isInfiniteLoop(), getCurrentItem(), getRealCount());
getIndicator().onPageChanged(getRealCount(), realPosition);
@@ -573,7 +573,7 @@ public Banner setIndicatorPageChange() {
return this;
}
- public Banner removeIndicator() {
+ public Banner removeIndicator() {
if (getIndicator() != null) {
removeView(getIndicator().getIndicatorView());
}
@@ -584,7 +584,7 @@ public Banner removeIndicator() {
/**
* 设置开始的位置 (需要在setAdapter或者setDatas之前调用才有效哦)
*/
- public Banner setStartPosition(int mStartPosition) {
+ public Banner setStartPosition(int mStartPosition) {
this.mStartPosition = mStartPosition;
return this;
}
@@ -598,7 +598,7 @@ public int getStartPosition() {
*
* @param enabled true 允许,false 禁止
*/
- public Banner setUserInputEnabled(boolean enabled) {
+ public Banner setUserInputEnabled(boolean enabled) {
getViewPager2().setUserInputEnabled(enabled);
return this;
}
@@ -608,7 +608,7 @@ public Banner setUserInputEnabled(boolean enabled) {
* {@link ViewPager2.PageTransformer}
* 如果找不到请导入implementation "androidx.viewpager2:viewpager2:1.0.0"
*/
- public Banner addPageTransformer(@Nullable ViewPager2.PageTransformer transformer) {
+ public Banner addPageTransformer(@Nullable ViewPager2.PageTransformer transformer) {
mCompositePageTransformer.addTransformer(transformer);
return this;
}
@@ -616,12 +616,12 @@ public Banner addPageTransformer(@Nullable ViewPager2.PageTransformer tra
/**
* 设置PageTransformer,和addPageTransformer不同,这个只支持一种transformer
*/
- public Banner setPageTransformer(@Nullable ViewPager2.PageTransformer transformer) {
+ public Banner setPageTransformer(@Nullable ViewPager2.PageTransformer transformer) {
getViewPager2().setPageTransformer(transformer);
return this;
}
- public Banner removeTransformer(ViewPager2.PageTransformer transformer) {
+ public Banner removeTransformer(ViewPager2.PageTransformer transformer) {
mCompositePageTransformer.removeTransformer(transformer);
return this;
}
@@ -629,12 +629,12 @@ public Banner removeTransformer(ViewPager2.PageTransformer transformer) {
/**
* 添加 ItemDecoration
*/
- public Banner addItemDecoration(RecyclerView.ItemDecoration decor) {
+ public Banner addItemDecoration(RecyclerView.ItemDecoration decor) {
getViewPager2().addItemDecoration(decor);
return this;
}
- public Banner addItemDecoration(RecyclerView.ItemDecoration decor, int index) {
+ public Banner addItemDecoration(RecyclerView.ItemDecoration decor, int index) {
getViewPager2().addItemDecoration(decor, index);
return this;
}
@@ -644,7 +644,7 @@ public Banner addItemDecoration(RecyclerView.ItemDecoration decor, int in
*
* @param isAutoLoop ture 允许,false 不允许
*/
- public Banner isAutoLoop(boolean isAutoLoop) {
+ public Banner isAutoLoop(boolean isAutoLoop) {
this.mIsAutoLoop = isAutoLoop;
return this;
}
@@ -655,7 +655,7 @@ public Banner isAutoLoop(boolean isAutoLoop) {
*
* @param loopTime 时间(毫秒)
*/
- public Banner setLoopTime(long loopTime) {
+ public Banner setLoopTime(long loopTime) {
this.mLoopTime = loopTime;
return this;
}
@@ -663,7 +663,7 @@ public Banner setLoopTime(long loopTime) {
/**
* 设置轮播滑动过程的时间
*/
- public Banner setScrollTime(int scrollTime) {
+ public Banner setScrollTime(int scrollTime) {
this.mScrollTime = scrollTime;
return this;
}
@@ -671,7 +671,7 @@ public Banner setScrollTime(int scrollTime) {
/**
* 开始轮播
*/
- public Banner start() {
+ public Banner start() {
if (mIsAutoLoop) {
stop();
postDelayed(mLoopTask, mLoopTime);
@@ -682,7 +682,7 @@ public Banner start() {
/**
* 停止轮播
*/
- public Banner stop() {
+ public Banner stop() {
if (mIsAutoLoop) {
removeCallbacks(mLoopTask);
}
@@ -703,7 +703,7 @@ public void destroy() {
/**
* 设置banner的适配器
*/
- public Banner setAdapter(BA adapter) {
+ public Banner setAdapter(BA adapter) {
if (adapter == null) {
throw new NullPointerException(getContext().getString(R.string.banner_adapter_null_error));
}
@@ -724,7 +724,7 @@ public Banner setAdapter(BA adapter) {
* @param isInfiniteLoop 是否支持无限循环
* @return
*/
- public Banner setAdapter(BA adapter,boolean isInfiniteLoop) {
+ public Banner setAdapter(BA adapter,boolean isInfiniteLoop) {
mIsInfiniteLoop=isInfiniteLoop;
setInfiniteLoop();
setAdapter(adapter);
@@ -736,10 +736,9 @@ public Banner setAdapter(BA adapter,boolean isInfiniteLoop) {
*
* @param datas 数据集合,当传null或者datas没有数据时,banner会变成空白的,请做好占位UI处理
*/
- public Banner setDatas(List datas) {
+ public Banner setDatas(List datas) {
if (getAdapter() != null) {
getAdapter().setDatas(datas);
- getAdapter().notifyDataSetChanged();
setCurrentItem(mStartPosition, false);
setIndicatorPageChange();
start();
@@ -752,7 +751,7 @@ public Banner setDatas(List datas) {
*
* @param orientation {@link Orientation}
*/
- public Banner setOrientation(@Orientation int orientation) {
+ public Banner setOrientation(@Orientation int orientation) {
getViewPager2().setOrientation(orientation);
return this;
}
@@ -760,7 +759,7 @@ public Banner setOrientation(@Orientation int orientation) {
/**
* 改变最小滑动距离
*/
- public Banner setTouchSlop(int mTouchSlop) {
+ public Banner setTouchSlop(int mTouchSlop) {
this.mTouchSlop = mTouchSlop;
return this;
}
@@ -768,7 +767,7 @@ public Banner setTouchSlop(int mTouchSlop) {
/**
* 设置点击事件
*/
- public Banner setOnBannerListener(OnBannerListener listener) {
+ public Banner setOnBannerListener(OnBannerListener listener) {
if (getAdapter() != null) {
getAdapter().setOnBannerListener(listener);
}
@@ -782,7 +781,7 @@ public Banner setOnBannerListener(OnBannerListener listener) {
* 为了方便使用习惯这里用的是和viewpager一样的{@link ViewPager.OnPageChangeListener}接口
*
*/
- public Banner addOnPageChangeListener(OnPageChangeListener pageListener) {
+ public Banner addOnPageChangeListener(OnPageChangeListener pageListener) {
this.mOnPageChangeListener = pageListener;
return this;
}
@@ -794,7 +793,7 @@ public Banner addOnPageChangeListener(OnPageChangeListener pageListener)
*
* @param radius 圆角半径
*/
- public Banner setBannerRound(float radius) {
+ public Banner setBannerRound(float radius) {
mBannerRadius = radius;
return this;
}
@@ -803,7 +802,7 @@ public Banner setBannerRound(float radius) {
* 设置banner圆角(第二种方式,和上面的方法不要同时使用),只支持5.0以上
*/
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
- public Banner setBannerRound2(float radius) {
+ public Banner setBannerRound2(float radius) {
BannerUtils.setBannerRound(this, radius);
return this;
}
@@ -814,7 +813,7 @@ public Banner setBannerRound2(float radius) {
* @param itemWidth item左右展示的宽度,单位dp
* @param pageMargin 页面间距,单位dp
*/
- public Banner setBannerGalleryEffect(int itemWidth, int pageMargin) {
+ public Banner setBannerGalleryEffect(int itemWidth, int pageMargin) {
return setBannerGalleryEffect(itemWidth, pageMargin, .85f);
}
@@ -825,7 +824,7 @@ public Banner setBannerGalleryEffect(int itemWidth, int pageMargin) {
* @param rightItemWidth item右展示的宽度,单位dp
* @param pageMargin 页面间距,单位dp
*/
- public Banner setBannerGalleryEffect(int leftItemWidth, int rightItemWidth, int pageMargin) {
+ public Banner setBannerGalleryEffect(int leftItemWidth, int rightItemWidth, int pageMargin) {
return setBannerGalleryEffect(leftItemWidth,rightItemWidth, pageMargin, .85f);
}
@@ -836,7 +835,7 @@ public Banner setBannerGalleryEffect(int leftItemWidth, int rightItemWidt
* @param pageMargin 页面间距,单位dp
* @param scale 缩放[0-1],1代表不缩放
*/
- public Banner setBannerGalleryEffect(int itemWidth, int pageMargin, float scale) {
+ public Banner setBannerGalleryEffect(int itemWidth, int pageMargin, float scale) {
return setBannerGalleryEffect(itemWidth, itemWidth, pageMargin, scale);
}
@@ -848,7 +847,7 @@ public Banner setBannerGalleryEffect(int itemWidth, int pageMargin, float
* @param pageMargin 页面间距,单位dp
* @param scale 缩放[0-1],1代表不缩放
*/
- public Banner setBannerGalleryEffect(int leftItemWidth, int rightItemWidth, int pageMargin, float scale) {
+ public Banner setBannerGalleryEffect(int leftItemWidth, int rightItemWidth, int pageMargin, float scale) {
if (pageMargin > 0) {
addPageTransformer(new MarginPageTransformer(BannerUtils.dp2px(pageMargin)));
}
@@ -865,7 +864,7 @@ public Banner setBannerGalleryEffect(int leftItemWidth, int rightItemWidt
*
* @param itemWidth item左右展示的宽度,单位dp
*/
- public Banner setBannerGalleryMZ(int itemWidth) {
+ public Banner setBannerGalleryMZ(int itemWidth) {
return setBannerGalleryMZ(itemWidth, .88f);
}
@@ -875,7 +874,7 @@ public Banner setBannerGalleryMZ(int itemWidth) {
* @param itemWidth item左右展示的宽度,单位dp
* @param scale 缩放[0-1],1代表不缩放
*/
- public Banner setBannerGalleryMZ(int itemWidth, float scale) {
+ public Banner setBannerGalleryMZ(int itemWidth, float scale) {
if (scale < 1 && scale > 0) {
addPageTransformer(new MZScaleInTransformer(scale));
}
@@ -892,7 +891,7 @@ public Banner setBannerGalleryMZ(int itemWidth, float scale) {
/**
* 设置轮播指示器(显示在banner上)
*/
- public Banner setIndicator(Indicator indicator) {
+ public Banner setIndicator(Indicator indicator) {
return setIndicator(indicator, true);
}
@@ -903,7 +902,7 @@ public Banner setIndicator(Indicator indicator) {
* 注意:设置为false后,内置的 setIndicatorGravity()和setIndicatorMargins() 方法将失效。
* 想改变可以自己调用系统提供的属性在布局文件中进行设置。具体可以参照demo
*/
- public Banner setIndicator(Indicator indicator, boolean attachToBanner) {
+ public Banner setIndicator(Indicator indicator, boolean attachToBanner) {
removeIndicator();
indicator.getIndicatorConfig().setAttachToBanner(attachToBanner);
this.mIndicator = indicator;
@@ -912,31 +911,31 @@ public Banner setIndicator(Indicator indicator, boolean attachToBanner) {
}
- public Banner setIndicatorSelectedColor(@ColorInt int color) {
+ public Banner setIndicatorSelectedColor(@ColorInt int color) {
if (getIndicatorConfig() != null) {
getIndicatorConfig().setSelectedColor(color);
}
return this;
}
- public Banner setIndicatorSelectedColorRes(@ColorRes int color) {
+ public Banner setIndicatorSelectedColorRes(@ColorRes int color) {
setIndicatorSelectedColor(ContextCompat.getColor(getContext(), color));
return this;
}
- public Banner setIndicatorNormalColor(@ColorInt int color) {
+ public Banner setIndicatorNormalColor(@ColorInt int color) {
if (getIndicatorConfig() != null) {
getIndicatorConfig().setNormalColor(color);
}
return this;
}
- public Banner setIndicatorNormalColorRes(@ColorRes int color) {
+ public Banner setIndicatorNormalColorRes(@ColorRes int color) {
setIndicatorNormalColor(ContextCompat.getColor(getContext(), color));
return this;
}
- public Banner setIndicatorGravity(@IndicatorConfig.Direction int gravity) {
+ public Banner setIndicatorGravity(@IndicatorConfig.Direction int gravity) {
if (getIndicatorConfig() != null && getIndicatorConfig().isAttachToBanner()) {
getIndicatorConfig().setGravity(gravity);
getIndicator().getIndicatorView().postInvalidate();
@@ -944,14 +943,14 @@ public Banner setIndicatorGravity(@IndicatorConfig.Direction int gravity)
return this;
}
- public Banner setIndicatorSpace(int indicatorSpace) {
+ public Banner setIndicatorSpace(int indicatorSpace) {
if (getIndicatorConfig() != null) {
getIndicatorConfig().setIndicatorSpace(indicatorSpace);
}
return this;
}
- public Banner setIndicatorMargins(IndicatorConfig.Margins margins) {
+ public Banner setIndicatorMargins(IndicatorConfig.Margins margins) {
if (getIndicatorConfig() != null && getIndicatorConfig().isAttachToBanner()) {
getIndicatorConfig().setMargins(margins);
getIndicator().getIndicatorView().requestLayout();
@@ -959,7 +958,7 @@ public Banner setIndicatorMargins(IndicatorConfig.Margins margins) {
return this;
}
- public Banner setIndicatorWidth(int normalWidth, int selectedWidth) {
+ public Banner setIndicatorWidth(int normalWidth, int selectedWidth) {
if (getIndicatorConfig() != null) {
getIndicatorConfig().setNormalWidth(normalWidth);
getIndicatorConfig().setSelectedWidth(selectedWidth);
@@ -967,14 +966,14 @@ public Banner setIndicatorWidth(int normalWidth, int selectedWidth) {
return this;
}
- public Banner setIndicatorNormalWidth(int normalWidth) {
+ public Banner setIndicatorNormalWidth(int normalWidth) {
if (getIndicatorConfig() != null) {
getIndicatorConfig().setNormalWidth(normalWidth);
}
return this;
}
- public Banner setIndicatorSelectedWidth(int selectedWidth) {
+ public Banner setIndicatorSelectedWidth(int selectedWidth) {
if (getIndicatorConfig() != null) {
getIndicatorConfig().setSelectedWidth(selectedWidth);
}
@@ -1001,7 +1000,7 @@ public Banner setIndicatorHeight(int indicatorHeight) {
* **********************************************************************
*/
- public Banner addBannerLifecycleObserver(LifecycleOwner owner) {
+ public Banner addBannerLifecycleObserver(LifecycleOwner owner) {
if (owner != null) {
owner.getLifecycle().addObserver(new BannerLifecycleObserverAdapter(owner, this));
}
diff --git a/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java b/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java
index ecd61bf7..b8d1e7cd 100644
--- a/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java
+++ b/banner/src/main/java/com/youth/banner/adapter/BannerAdapter.java
@@ -18,9 +18,7 @@
import androidx.recyclerview.widget.RecyclerView;
-public abstract class BannerAdapter
- extends RecyclerView.Adapter
- implements IViewHolder {
+public abstract class BannerAdapter extends RecyclerView.Adapter implements IViewHolder {
protected List mDatas = new ArrayList<>();
private OnBannerListener mOnBannerListener;
private VH mViewHolder;
@@ -40,6 +38,7 @@ public void setDatas(List datas) {
datas = new ArrayList<>();
}
mDatas = datas;
+ notifyDataSetChanged();
}
/**
diff --git a/update_message.md b/update_message.md
index bd4630b9..9cf5f48b 100644
--- a/update_message.md
+++ b/update_message.md
@@ -1,5 +1,12 @@
## 更新说明
+#### v2.2.1-2.2.2
+ * 对kotlin使用的兼容支持
+ * 对kotlin使用demo进行了修改
+ * 新版本都将迁移至MavenCentral
+ * 更新viewpager2到1.1.0-alpha01
+ * 修改bug
+
#### v2.2.0
* 自定义属性中增加可选择设置banner圆角的具体方向
* 增加DrawableIndicator指示器,支持直接设置图片了,可以通过构造方法或者自定义属性设置
diff --git a/usekotlin/build.gradle b/usekotlin/build.gradle
index 87dd23cb..821feeda 100644
--- a/usekotlin/build.gradle
+++ b/usekotlin/build.gradle
@@ -30,14 +30,14 @@ android {
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72"
+ implementation 'org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.31'
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.core:core-ktx:1.3.0'
- implementation 'com.github.bumptech.glide:glide:4.11.0'
+ implementation 'com.github.bumptech.glide:glide:4.12.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- testImplementation 'junit:junit:4.13'
+ testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation project(path: ':banner')
- implementation 'androidx.recyclerview:recyclerview:1.1.0'
+ implementation 'androidx.recyclerview:recyclerview:1.2.0'
}
diff --git a/usekotlin/src/main/java/com/spring/usekotlin/BannerImageAdapter.kt b/usekotlin/src/main/java/com/spring/usekotlin/ImageAdapter.kt
similarity index 63%
rename from usekotlin/src/main/java/com/spring/usekotlin/BannerImageAdapter.kt
rename to usekotlin/src/main/java/com/spring/usekotlin/ImageAdapter.kt
index bfc86581..f4c44dea 100644
--- a/usekotlin/src/main/java/com/spring/usekotlin/BannerImageAdapter.kt
+++ b/usekotlin/src/main/java/com/spring/usekotlin/ImageAdapter.kt
@@ -1,6 +1,5 @@
package com.spring.usekotlin
-import android.os.Build
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
@@ -9,7 +8,7 @@ import com.bumptech.glide.Glide
import com.youth.banner.adapter.BannerAdapter
import com.youth.banner.util.BannerUtils
-class BannerImageAdapter(imageUrls: List) : BannerAdapter(imageUrls) {
+class ImageAdapter(imageUrls: List) : BannerAdapter(imageUrls) {
override fun onCreateHolder(parent: ViewGroup?, viewType: Int): ImageHolder {
@@ -18,25 +17,19 @@ class BannerImageAdapter(imageUrls: List) : BannerAdapter= Build.VERSION_CODES.LOLLIPOP) {
- BannerUtils.setBannerRound(imageView, 20f)
- }
+ BannerUtils.setBannerRound(imageView, 20f)
return ImageHolder(imageView)
}
- override fun onBindView(holder: ImageHolder?, data: String?, position: Int, size: Int) {
- Glide.with(holder!!.itemView)
+ override fun onBindView(holder: ImageHolder, data: String, position: Int, size: Int) {
+ Glide.with(holder.itemView)
.load(data)
.into(holder.imageView)
}
class ImageHolder(view: View) : RecyclerView.ViewHolder(view) {
- var imageView: ImageView
-
- init {
- imageView = view as ImageView
- }
+ var imageView: ImageView = view as ImageView
}
}
diff --git a/usekotlin/src/main/java/com/spring/usekotlin/MainActivity.kt b/usekotlin/src/main/java/com/spring/usekotlin/MainActivity.kt
index d145feb1..77e75452 100644
--- a/usekotlin/src/main/java/com/spring/usekotlin/MainActivity.kt
+++ b/usekotlin/src/main/java/com/spring/usekotlin/MainActivity.kt
@@ -1,38 +1,39 @@
package com.spring.usekotlin
-import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
-import androidx.recyclerview.widget.RecyclerView
+import androidx.appcompat.app.AppCompatActivity
+import com.bumptech.glide.Glide
import com.youth.banner.Banner
-import com.youth.banner.adapter.BannerAdapter
+import com.youth.banner.adapter.BannerImageAdapter
+import com.youth.banner.holder.BannerImageHolder
import com.youth.banner.indicator.CircleIndicator
-import com.youth.banner.transformer.RotateYTransformer
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
var imageUrls = listOf(
- "https://img.zcool.cn/community/011ad05e27a173a801216518a5c505.jpg",
- "https://img.zcool.cn/community/0148fc5e27a173a8012165184aad81.jpg",
- "https://img.zcool.cn/community/013c7d5e27a174a80121651816e521.jpg",
- "https://img.zcool.cn/community/01b8ac5e27a173a80120a895be4d85.jpg",
- "https://img.zcool.cn/community/01a85d5e27a174a80120a895111b2c.jpg",
- "https://img.zcool.cn/community/01085d5e27a174a80120a8958791c4.jpg"
+ "https://img.zcool.cn/community/01b72057a7e0790000018c1bf4fce0.png",
+ "https://img.zcool.cn/community/016a2256fb63006ac7257948f83349.jpg",
+ "https://img.zcool.cn/community/01233056fb62fe32f875a9447400e1.jpg",
+ "https://img.zcool.cn/community/01700557a7f42f0000018c1bd6eb23.jpg"
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
- var adapter = BannerImageAdapter(imageUrls)
- banner?.let {
- it.addBannerLifecycleObserver(this)
- it.setIndicator(CircleIndicator(this))
- it.setBannerRound(20f)
- it.adapter = adapter
+ var banner = (bannerLayout as Banner>)
+ banner.apply {
+ addBannerLifecycleObserver(this@MainActivity)
+ setBannerRound(20f)
+ indicator = CircleIndicator(this@MainActivity)
+ setAdapter(object : BannerImageAdapter(imageUrls) {
+ override fun onBindView(holder: BannerImageHolder, data: String, position: Int, size: Int) {
+ Glide.with(this@MainActivity)
+ .load(data)
+ .into(holder.imageView)
+ }
+ })
}
-
-
-
}
diff --git a/usekotlin/src/main/res/layout/activity_main.xml b/usekotlin/src/main/res/layout/activity_main.xml
index 496575f3..4cf93431 100644
--- a/usekotlin/src/main/res/layout/activity_main.xml
+++ b/usekotlin/src/main/res/layout/activity_main.xml
@@ -5,14 +5,12 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:padding="10dp"
- tools:context=".MainActivity">
+ android:padding="10dp">
+ android:layout_height="180dp"
+ app:layout_constraintTop_toTopOf="parent" />
\ No newline at end of file