diff --git a/README.md b/README.md index c47d736..3aba724 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ Gradle ```groovy dependencies{ - compile 'com.youth.banner:banner:2.0.9' + compile 'com.youth.banner:banner:2.0.10' } ``` diff --git a/app/src/main/java/com/test/banner/ui/Vp2FragmentRecyclerviewActivity.java b/app/src/main/java/com/test/banner/ui/Vp2FragmentRecyclerviewActivity.java index 5b52749..ff58b56 100644 --- a/app/src/main/java/com/test/banner/ui/Vp2FragmentRecyclerviewActivity.java +++ b/app/src/main/java/com/test/banner/ui/Vp2FragmentRecyclerviewActivity.java @@ -2,16 +2,19 @@ import android.os.Bundle; +import com.google.android.material.tabs.TabLayout; +import com.test.banner.R; +import com.test.banner.adapter.ImageAdapter; +import com.test.banner.bean.DataBean; +import com.test.banner.util.TabLayoutMediator; +import com.youth.banner.Banner; +import com.youth.banner.indicator.CircleIndicator; + import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; - -import com.google.android.material.tabs.TabLayout; -import com.test.banner.R; -import com.test.banner.util.TabLayoutMediator; - import butterknife.BindView; import butterknife.ButterKnife; @@ -21,6 +24,8 @@ public class Vp2FragmentRecyclerviewActivity extends AppCompatActivity { ViewPager2 viewPager2; @BindView(R.id.tab_layout) TabLayout mTabLayout; + @BindView(R.id.banner) + Banner mBanner; @Override protected void onCreate(Bundle savedInstanceState) { @@ -32,11 +37,11 @@ protected void onCreate(Bundle savedInstanceState) { @NonNull @Override public Fragment createFragment(int position) { - if (position==0) { + if (position == 0) { return BannerListFragment.newInstance(position); - }else if (position==1){ + } else if (position == 1) { return BlankFragment.newInstance(); - }else{ + } else { return BannerFragment.newInstance(); } } @@ -47,8 +52,14 @@ public int getItemCount() { } }); - new TabLayoutMediator(mTabLayout,viewPager2,(tab, position) -> { - tab.setText("页面"+position); + new TabLayoutMediator(mTabLayout, viewPager2, (tab, position) -> { + tab.setText("页面" + position); }).attach(); + + + mBanner.addBannerLifecycleObserver(this) + .setAdapter(new ImageAdapter(DataBean.getTestData())) + .setIntercept(false) + .setIndicator(new CircleIndicator(this)); } } diff --git a/app/src/main/res/layout/activity_vp2_fragment_recyclerview.xml b/app/src/main/res/layout/activity_vp2_fragment_recyclerview.xml index ca72e67..75d76d9 100644 --- a/app/src/main/res/layout/activity_vp2_fragment_recyclerview.xml +++ b/app/src/main/res/layout/activity_vp2_fragment_recyclerview.xml @@ -26,12 +26,10 @@ android:layout_height="180dp" android:orientation="vertical"> - + android:layout_height="180dp"/> diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png index cde69bc..ffec7ee 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png index c133a0c..2c85c00 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png index bfa42f0..77d2c0f 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 324e72c..8c394ee 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..516a7ab Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c243d41..15ee3a5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,4 @@ - Banner Example - ScrollView嵌套banner + Banner diff --git a/banner/build.gradle b/banner/build.gradle index ffdeb11..f8b8f20 100644 --- a/banner/build.gradle +++ b/banner/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' -version = "2.0.9" +version = "2.0.10" android { compileSdkVersion 29 @@ -10,7 +10,7 @@ android { defaultConfig { minSdkVersion 14 targetSdkVersion 29 - versionCode 200009 + versionCode 200010 versionName version consumerProguardFiles 'proguard-rules.pro' } diff --git a/banner/src/main/java/com/youth/banner/Banner.java b/banner/src/main/java/com/youth/banner/Banner.java index 6642802..50a0bf5 100644 --- a/banner/src/main/java/com/youth/banner/Banner.java +++ b/banner/src/main/java/com/youth/banner/Banner.java @@ -95,6 +95,8 @@ public class Banner extends FrameLayout implements private float mStartX, mStartY; // 记录viewpager2是否被拖动 private boolean mIsViewPager2Drag; + // 是否要拦截事件 + private boolean isIntercept = true; @Retention(SOURCE) @IntDef( {HORIZONTAL, VERTICAL}) @@ -211,7 +213,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) { @Override public boolean onInterceptTouchEvent(MotionEvent event) { - if (!getViewPager2().isUserInputEnabled()) { + if (!getViewPager2().isUserInputEnabled() || !isIntercept) { return super.onInterceptTouchEvent(event); } switch (event.getAction()) { @@ -446,6 +448,11 @@ public int getRealCount() { //----------------------------------------------------------------------------------------- + public Banner setIntercept(boolean intercept) { + isIntercept = intercept; + return this; + } + public Banner setCurrentItem(int position) { return setCurrentItem(position, true); }