8000 bugfix:1. pagerview设置自动循环滚动的时候,会多渲染出两个indicator的问题;2. pagerview设置自动循环… · newcoderzhang/LuaViewSDK@0bc3041 · GitHub
[go: up one dir, main page]

Skip to content

Commit 0bc3041

Browse files
author
tuoli
committed
bugfix:1. pagerview设置自动循环滚动的时候,会多渲染出两个indicator的问题;2. pagerview设置自动循环滚动的时候,自动播放有时候会失效的问题
1 parent dda3e0c commit 0bc3041

File tree

3 files changed

+28
-3
lines changed

3 files changed

+28
-3
lines changed

Android/LuaViewDemo/src/com/taobao/luaview/demo/activity/DemoLuaViewActivity.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.Activity;
44
import android.os.Bundle;
55

6+
import com.taobao.luaview.activity.LuaViewActivity;
67
import com.taobao.luaview.demo.provider.GlideImageProvider;
78
import com.taobao.luaview.demo.ui.CustomError;
89
import com.taobao.luaview.demo.ui.CustomLoading;
@@ -29,7 +30,7 @@
2930
* 修改描述
3031
* 下午4:50 song XXX
3132
*/
32-
public class DemoLuaViewActivity extends Activity {
33+
public class DemoLuaViewActivity extends LuaViewActivity {
3334
private LuaView mLuaView;
3435
private LVLoadingDialog mDialog;
3536

Android/LuaViewSDK/src/com/taobao/luaview/view/adapter/LVLoopPagerAdapter.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import android.view.ViewGroup;
55

66
import com.taobao.luaview.userdata.ui.UDViewPager;
7+
import com.taobao.luaview.view.indicator.circle.CycleIconPagerAdapter;
78

89
import org.luaj.vm2.Globals;
910

@@ -13,7 +14,7 @@
1314
* @author song
1415
* @date 15/9/17
1516
*/
16-
public class LVLoopPagerAdapter extends LVPagerAdapter {
17+
public class LVLoopPagerAdapter extends LVPagerAdapter implements CycleIconPagerAdapter {
1718

1819
private boolean mIsLooping = false;
1920
private boolean mBoundaryCaching = false;
@@ -189,4 +190,24 @@ public ToDestroy(ViewGroup container, int position, Object object) {
189190
this.object = object;
190191
}
191192
}
193+
194+
/**
195+
* bugfix: mIsLooping条件为真的时候,实际要绘制的indicator个数应该扣除掉两个虚拟的
196+
* see: {@link com.taobao.luaview.view.viewpager.LoopViewPager}
197+
*/
198+
@Override
199+
public int getActualCount() {
200+
if (mIsLooping)
201+
return getCount()-2;
202+
else
203+
return getCount();
204+
}
205+
206+
@Override
207+
public int getInstanceCount() {
208+
if (mIsLooping)
209+
return getCount()-2;
210+
else
211+
return getCount();
212+
}
192213
}

Android/LuaViewSDK/src/com/taobao/luaview/view/viewpager/AutoScrollViewPager.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,9 @@ public void scrollOnce() {
149149
* <li>if event is down, stop auto scroll.</li>
150150
* <li>if event is up, start auto scroll again.</li>
151151
* </ul>
152+
*
153+
* bugfix: 增加ev.getAction() == MotionEvent.ACTION_CANCEL条件判断,Action Cancel事件发生的时候也要重新开始自动滚动
154+
*
152155
*/
153156
@Override
154157
public boolean dispatchTouchEvent(MotionEvent ev) {
@@ -161,7 +164,7 @@ public boolean dispatchTouchEvent(MotionEvent ev) {
161164
if ((action == MotionEvent.ACTION_DOWN) && isAutoScroll) {
162165
isStopByTouch = true;
163166
stopAutoScroll();
164-
} else if (ev.getAction() == MotionEvent.ACTION_UP && isStopByTouch) {
167+
} else if ((ev.getAction() == MotionEvent.ACTION_UP || ev.getAction() == MotionEvent.ACTION_CANCEL) && isStopByTouch) {
165168
startAutoScroll();
166169
}
167170
}

0 commit comments

Comments
 (0)
0