android - 是否可以知道ViewPager中显示的是哪张图片?

标签 android android-viewpager

我有两张图片。我使用 ViewPager 来单独显示它们。我想知道屏幕上显示的是哪些。你能帮我解决吗?例如,当我滚动屏幕时,第一张图片将显示并 toast 一条消息,例如“这是第一张图片”,对第二张图片做同样的事情。提前致谢。这是我的代码

public class ViewPagerExample extends FragmentActivity{

    private MyAdapter mAdapter;
    private ViewPager mPager;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mAdapter = new MyAdapter(getSupportFragmentManager());

    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);
    }

    public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fm) {
    super(fm);
    }

    @Override
    public int getCount() {
    return 2;
    }

    @Override
    public Fragment getItem(int position) {
    switch (position) {
    case 0:
    {
    return new ImageFragment(R.drawable.image1);
    }
    case 1:
    {
    return new ImageFragment(R.drawable.image2);
    }

    default:
    return null;
    }
    }
    }
    }

和 ImageFragment 类

public class ImageFragment extends Fragment {
    private final int imageResourceId;

    public ImageFragment(int imageResourceId) {
    this.imageResourceId = imageResourceId;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("Test", "hello");
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
    Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.image_layout, container, false);
    ImageView imageView = (ImageView) view.findViewById(R.id.imageView1);
    imageView.setImageResource(imageResourceId);
    return view;
    }
    }

最佳答案

尝试这样的事情

mPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int pager_position) {

                // show toast here for images
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

关于android - 是否可以知道ViewPager中显示的是哪张图片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754023/

相关文章:

android - 在 Android Viewpager 中更改 pagetitle

android - 如何在 Activity 之间滑动(我的代码哪里错了???)

android - 如何找到最新的 gradle 版本和包装器

android - 是否可以在同一页面上有一个微调器和一个 ListView ?

android - 如何使用 Gradle NDK build 为主机编译?

android - PagerSlidingTabStrip - 在运行时添加新选项卡

android - 刷新 SlidingTabLayout

android - 特定 fragment 中的 Snackbar

android - 第一次没有关注编辑文本

android - 在 Circular ViewPager 中切换 First 和 Last