为了账号安全,请及时绑定邮箱和手机立即绑定

我想做个ViewPager自动轮播,遇到一些问题,大家能帮忙看下不

就是在设置好xiewpager之后我再MainActivity中像老师那样建立一个内部类,实现接口Runnable

正在回答

6 回答

你是说你手动滑动到第二张,然后过一会会从第一张开始自动轮播是吗?

0 回复 有任何疑惑可以回复我~
#1

元素滴3579866 提问者

不是,它不动,但是我滑到第二张它却跳到了第一张
2016-09-11 回复 有任何疑惑可以回复我~
#2

ziom 回复 元素滴3579866 提问者

好吧,工程发给我,我试试
2016-09-11 回复 有任何疑惑可以回复我~
#3

ziom 回复 元素滴3579866 提问者

...这么着急采纳做甚么,我不一定能解决- -
2016-09-11 回复 有任何疑惑可以回复我~
#4

元素滴3579866 提问者 回复 ziom

恩,正在上传,不知道为什么那么大,我用的是AS啊
2016-09-11 回复 有任何疑惑可以回复我~
#5

ziom 回复 元素滴3579866 提问者

哦..
2016-09-11 回复 有任何疑惑可以回复我~
#6

元素滴3579866 提问者 回复 ziom

没事,反正感觉你也挺热心肠的
2016-09-11 回复 有任何疑惑可以回复我~
查看4条回复

层主觉得:是不是应该把index++;放在index %= 4;的前面呢?

0 回复 有任何疑惑可以回复我~
#1

元素滴3579866 提问者

上面的童鞋是对的,你这个不行,会跑到第二张图片就不动了
2016-09-20 回复 有任何疑惑可以回复我~

把这个index = 0 改成全局变量试试

0 回复 有任何疑惑可以回复我~
#1

元素滴3579866 提问者

对了,谢谢
2016-09-20 回复 有任何疑惑可以回复我~
#2

元素滴3579866 提问者

但是是什么原因呢,能说一下嘛
2016-09-20 回复 有任何疑惑可以回复我~
#3

元素滴3579866 提问者

不过要把index %= 4;去掉,不然循环到第二次的时候因为找不到第五张图片会崩掉
2016-09-20 回复 有任何疑惑可以回复我~
package com.example.nete.viewpager;

import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;

public class Mypager extends PagerAdapter {
    public List<View> listview;

    public Mypager(List<View> datas) {
        listview = datas;
    }

    @Override
    public int getCount() {
        return Integer.MAX_VALUE;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        return view == object;
    }

    @Override//实例化一个页卡
    public Object instantiateItem(ViewGroup container, int position) {
        int mposition = position % listview.size();
        container.addView(listview.get(mposition));
        return listview.get(mposition);
    }

    @Override//销毁一个页卡,去掉super
    public void destroyItem(ViewGroup container, int position, Object object) {
        int mposition = position % listview.size();
        container.removeView(listview.get(mposition));
    }


}


0 回复 有任何疑惑可以回复我~

现在的情况是我滑动到第二张图片它就自己跑到第一张图片上去了,是为什么呢

0 回复 有任何疑惑可以回复我~
package com.example.nete.viewpager;

import android.os.Bundle;
import android.os.Handler;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {
    public ViewPager viewpager;
    private List<View> listView;
    public Handler handler = new Handler();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.viewpager_main);
        viewpager = (ViewPager) findViewById(R.id.viewpager);
        listView = new ArrayList<View>();//初始化该列表
        //加载四个布局
        View view1 = View.inflate(this, R.layout.view1, null);
        View view2 = View.inflate(this, R.layout.view2, null);
        View view3 = View.inflate(this, R.layout.view3, null);
        View view4 = View.inflate(this, R.layout.view4, null);
//        将四个布局加入list中
        listView.add(view1);
        listView.add(view2);
        listView.add(view3);
        listView.add(view4);

        Mypager adapter = new Mypager(listView);
        viewpager.setAdapter(adapter);
        handler.postDelayed(new MyRunnable(), 1500);
    }

    class MyRunnable implements Runnable {
        int index = 0;

        @Override
        public void run() {
            index %= 4;
            viewpager.setCurrentItem(index);
            handler.postDelayed(new MyRunnable(), 1500);
            index++;
        }

    }
}


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android面试常客Handler详解
  • 参与学习       54881    人
  • 解答问题       183    个

学Android开发,必学Handler,也是Android面试常客

进入课程

我想做个ViewPager自动轮播,遇到一些问题,大家能帮忙看下不

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信