Flyco大神的Android View輪播控件使用簡(jiǎn)單方便串塑,屬性豐富北苟,擴(kuò)展性強(qiáng)。項(xiàng)目地址:https://github.com/H07000223/FlycoBanner_Master
只是控件有些時(shí)間沒有更新了傻昙,現(xiàn)在需求是一張圖片不能滾動(dòng),我們只有改改大神的代碼了
我們找到類BaseBanner妆档,找到protected ViewPager mViewPager;所以我們要修改ViewPager进泼,當(dāng)只有一張的時(shí)候我們不滾動(dòng)
1.創(chuàng)建一個(gè)可以禁止滑動(dòng)的ViewPager
public class NoScrollViewPager extends ViewPager {
private boolean noScroll = false;
public NoScrollViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public NoScrollViewPager(Context context) {
super(context);
}
/**
* 供外部調(diào)用的方法:設(shè)置是否可以滑動(dòng)
* @param noScroll true:表示禁止滑動(dòng)乳绕,false:表示可以滑動(dòng)
*/
public void setNoScroll(boolean noScroll) {
this.noScroll = noScroll;
}
@Override
public void scrollTo(int x, int y) {
super.scrollTo(x, y);
}
@Override
public boolean onTouchEvent(MotionEvent arg0) {
/* return false;//super.onTouchEvent(arg0); */
if (noScroll)
return false;
else
return super.onTouchEvent(arg0);
}
/**
* 返回true:表示攔截
* 返回false:表示不攔截
* @param arg0
* @return
*/
@Override
public boolean onInterceptTouchEvent(MotionEvent arg0) {
if (noScroll)
return false;
else
return super.onInterceptTouchEvent(arg0);
}
@Override
public void setCurrentItem(int item, boolean smoothScroll) {
super.setCurrentItem(item, smoothScroll);
}
@Override
public void setCurrentItem(int item) {
super.setCurrentItem(item);
}
}
2.把BaseBanner里的ViewPager換成NoScrollViewPager
3.在setViewPager()方法中洋措,添加判斷
if (mDatas.size() <= 1){
mViewPager.setNoScroll(true);
}
4.在startScroll()中修改杰刽,只有大于一張圖才顯示小點(diǎn)
if (mDatas.size() > 1){
//create indicator
View indicatorViews = onCreateIndicator();
if (indicatorViews != null) {
mLlIndicatorContainer.removeAllViews();
mLlIndicatorContainer.addView(indicatorViews);
}
}
這樣就完成了