diff --git a/app/build.gradle b/app/build.gradle index 94c36dc..c689783 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ android { dependencies { implementation 'com.android.support.constraint:constraint-layout:1.1.3' - compile fileTree(include: ['*.jar'], dir: 'libs') + implementation fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) diff --git a/app/src/main/java/com/zhengsr/viewpagerhelper/activity/loop/CircleIndicatorActivity.java b/app/src/main/java/com/zhengsr/viewpagerhelper/activity/loop/CircleIndicatorActivity.java index e9e9731..6140aac 100644 --- a/app/src/main/java/com/zhengsr/viewpagerhelper/activity/loop/CircleIndicatorActivity.java +++ b/app/src/main/java/com/zhengsr/viewpagerhelper/activity/loop/CircleIndicatorActivity.java @@ -3,7 +3,9 @@ import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; +import android.util.Log; import android.view.View; +import android.widget.Button; import android.widget.ImageView; import android.widget.Toast; @@ -124,17 +126,21 @@ private void showBanner(BannerViewPager bannerViewPager, CircleIndicator indicat bannerViewPager.setPageListener(R.layout.loop_layout, mDatas, new PageHelperListener() { @Override public void bindView(View view, final TestBean data, int position) { - setText(view, R.id.loop_text, data.msg); + setText(view, R.id.loop_text, data.msg); + //注册子控件事件 //addChildrenClick(view,R.id.item_text,position); + ImageView imageView = view.findViewById(R.id.loop_icon); GlideApp.with(view) .load(data.resId) .into(imageView); } + + @Override public void onItemClick(View view, TestBean data, int position) { super.onItemClick(view, data, position); diff --git a/app/src/main/res/layout/loop_layout.xml b/app/src/main/res/layout/loop_layout.xml index d6d02d6..6ab6d5b 100644 --- a/app/src/main/res/layout/loop_layout.xml +++ b/app/src/main/res/layout/loop_layout.xml @@ -20,12 +20,15 @@ android:layout_height="30dp"> + + diff --git a/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/callback/PageHelperListener.java b/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/callback/PageHelperListener.java index 11c6b97..075bbe9 100644 --- a/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/callback/PageHelperListener.java +++ b/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/callback/PageHelperListener.java @@ -1,16 +1,31 @@ package com.zhengsr.viewpagerlib.callback; import android.graphics.Bitmap; +import android.util.Log; +import android.util.SparseArray; +import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.TextView; +import java.util.ArrayList; +import java.util.List; + /** * Created by Administrator on 2017/11/9. */ public abstract class PageHelperListener { + private static final String TAG = "PageHelperListener"; + + private List mDatas; + public PageHelperListener() { + mDatas = new ArrayList<>(); + } + public void setDatas(List datas){ + mDatas.addAll(datas); + } /** * 拿到数据 @@ -25,14 +40,14 @@ public abstract class PageHelperListener { * @param childView * @param position */ - public void onItemChildClick(View childView,int position){} + public void onItemChildClick(View childView, T data,int position){} /** * 子控件长按事件 * @param childView * @param position */ - public boolean onItemChildLongClick(View childView,int position){ + public boolean onItemChildLongClick(View childView,T data,int position){ return true; } @@ -47,7 +62,7 @@ public PageHelperListener addChildrenClick(View view, int viewId, final int posi child.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - onItemChildClick(child,position); + onItemChildClick(child, (T) mDatas.get(position),position); } }); } @@ -64,7 +79,7 @@ public PageHelperListener addChildrenLongClick(View view, int viewId, final int child.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { - return onItemChildLongClick(child,position); + return onItemChildLongClick(child, (T) mDatas.get(position),position); } }); } @@ -72,6 +87,8 @@ public boolean onLongClick(View v) { } + + /** * 常用模板 */ diff --git a/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/view/BannerViewPager.java b/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/view/BannerViewPager.java index c461198..f2739da 100644 --- a/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/view/BannerViewPager.java +++ b/viewpagerlib/src/main/java/com/zhengsr/viewpagerlib/view/BannerViewPager.java @@ -12,6 +12,7 @@ import android.util.AttributeSet; import android.util.DisplayMetrics; import android.util.Log; +import android.util.SparseArray; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; @@ -39,7 +40,7 @@ * Created by Administrator on 2017/11/9. */ -public class BannerViewPager extends ViewPager implements View.OnTouchListener { +public class BannerViewPager extends ViewPager { /** * const */ @@ -124,7 +125,6 @@ public BannerViewPager(Context context, AttributeSet attrs) { ta.recycle(); mInflater = LayoutInflater.from(context); - setOnTouchListener(this); ViewPagerHelperUtils.initSwitchTime(getContext(), this, mSmoothTime); WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE); @@ -261,6 +261,7 @@ public void setPageListener(int layoutId, final List datas, final PageHel } mDatas.clear(); mDatas.addAll(datas); + listener.setDatas(mDatas); CusViewPagerAdapter adapter = new CusViewPagerAdapter(datas, layoutId, listener); setAdapter(adapter); @@ -276,6 +277,7 @@ public void setPageListener(int layoutId, final List datas, final PageHel + } @@ -295,26 +297,6 @@ private void chooseIndicator(int count, View indicator) { } - /** - * 当有触摸时停止 - */ - @Override - public boolean onTouch(View view, MotionEvent motionEvent) { - mHandler.removeMessages(LOOP_MSG); - switch (motionEvent.getAction()) { - case MotionEvent.ACTION_DOWN: - break; - case MotionEvent.ACTION_UP: - if (isAutoLoop) { - mHandler.sendEmptyMessageDelayed(LOOP_MSG, mLoopTime); - } - break; - - default: - break; - } - return false; - } /** * 手动停止 @@ -427,10 +409,9 @@ public boolean onTouch(View v, MotionEvent event) { case MotionEvent.ACTION_DOWN: mLastTime = System.currentTimeMillis(); break; - case MotionEvent.ACTION_UP: long time = System.currentTimeMillis() - mLastTime; - if (time > 200){ + if (time < 200){ if (listener != null && mDatas.size() > 0) { listener.onItemClick(view,mDatas.get(position),position); } @@ -443,6 +424,8 @@ public boolean onTouch(View v, MotionEvent event) { return false; } }); + + } }