ViewPager 是 Android 中的一个视图组件,用于实现水平滑动的页面切换效果,常用于展示多个页面,例如图片轮播、导航页面等。以下是 ViewPager 的简单使用示例:

1. 在布局文件中添加 ViewPager:
<!-- res/layout/activity_main.xml -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

2. 创建适配器(Adapter):
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;

public class CustomPagerAdapter extends PagerAdapter {

    private Context context;
    private int[] images = {R.drawable.image1, R.drawable.image2, R.drawable.image3};

    public CustomPagerAdapter(Context context) {
        this.context = context;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        // 创建并返回页面视图
        LayoutInflater inflater = LayoutInflater.from(context);
        View view = inflater.inflate(R.layout.pager_item, container, false);

        ImageView imageView = view.findViewById(R.id.imageView);
        imageView.setImageResource(images[position]);

        container.addView(view);
        return view;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        // 移除页面
        container.removeView((View) object);
    }

    @Override
    public int getCount() {
        // 返回页面数量
        return images.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        // 判断是否是同一个页面
        return view == object;
    }
}

3. 创建页面布局文件(pager_item.xml):
<!-- res/layout/pager_item.xml -->
<ImageView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="centerCrop"/>

4. 在活动中使用 ViewPager:
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;

public class MainActivity extends AppCompatActivity {

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

        // 获取 ViewPager
        ViewPager viewPager = findViewById(R.id.viewPager);

        // 创建适配器
        CustomPagerAdapter adapter = new CustomPagerAdapter(this);

        // 设置适配器
        viewPager.setAdapter(adapter);
    }
}

这个简单的示例演示了如何在 Android 应用中使用 ViewPager 实现页面切换效果。你可以根据实际需求定制适配器和页面布局。


转载请注明出处:http://www.zyzy.cn/article/detail/15159/Android