DoubleViewPager 开源项目教程

DoubleViewPager 开源项目教程

DoubleViewPagerHorizontal + Vertical ViewPager项目地址:https://gitcode.com/gh_mirrors/do/DoubleViewPager

项目介绍

DoubleViewPager 是一个基于 ViewPager 的开源项目,旨在提供两个 ViewPager 之间的同步滑动效果。该项目通过自定义 ViewPager 实现,使得在一个 ViewPager 上滑动时,另一个 ViewPager 也能同步进行动画效果,适用于需要展示关联内容的场景。

项目快速启动

1. 克隆项目

首先,克隆 DoubleViewPager 项目到本地:

git clone https://github.com/juliome10/DoubleViewPager.git

2. 导入项目

将项目导入到 Android Studio 中,并同步 Gradle 文件。

3. 配置布局文件

在布局文件中添加两个 ViewPager:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.example.doubleviewpager.DoubleViewPager
        android:id="@+id/viewPager1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />

    <com.example.doubleviewpager.DoubleViewPager
        android:id="@+id/viewPager2"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

4. 配置适配器

为每个 ViewPager 配置适配器:

public class MyPagerAdapter extends PagerAdapter {
    private Context context;
    private List<Integer> drawables;

    public MyPagerAdapter(Context context, List<Integer> drawables) {
        this.context = context;
        this.drawables = drawables;
    }

    @Override
    public int getCount() {
        return drawables.size();
    }

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        imageView.setImageResource(drawables.get(position));
        container.addView(imageView);
        return imageView;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((ImageView) object);
    }
}

5. 设置 ViewPager

在 Activity 中设置 ViewPager 并实现同步滑动:

public class MainActivity extends AppCompatActivity {
    private DoubleViewPager viewPager1;
    private DoubleViewPager viewPager2;
    private MyPagerAdapter adapter1;
    private MyPagerAdapter adapter2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        viewPager1 = findViewById(R.id.viewPager1);
        viewPager2 = findViewById(R.id.viewPager2);

        List<Integer> drawables1 = Arrays.asList(R.drawable.image1, R.drawable.image2, R.drawable.image3);
        List<Integer> drawables2 = Arrays.asList(R.drawable.image4, R.drawable.image5, R.drawable.image6);

        adapter1 = new MyPagerAdapter(this, drawables1);
        adapter2 = new MyPagerAdapter(this, drawables2);

        viewPager1.setAdapter(adapter1);
        viewPager2.setAdapter(adapter2);

        viewPager1.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                viewPager2.setCurrentItem(position, true);
            }

            @Override
            public void onPageSelected(int position) {}

            @Override
            public void onPageScrollStateChanged(int state) {}
        });

        viewPager2.setOnPageChangeListener(new ViewPager.On

DoubleViewPagerHorizontal + Vertical ViewPager项目地址:https://gitcode.com/gh_mirrors/do/DoubleViewPager

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

叶展冰Guy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值