android studio向左向右滑动页面

本文演示了Android Studio中使用ViewPager实现页面切换的方法。通过创建包含3个页面的ViewPager示例,详细展示了实现步骤:1)在XML布局中配置ViewPager和切换按钮;2)使用LayoutInflater动态加载页面布局;3)自定义SimplePagerAdapter适配器;4)通过setCurrentItem()方法实现按钮点击切换页面功能。代码包含完整的Activity、Adapter实现以及页面布局示例,适用于基础ViewPager使用场景,如需ViewPager2版本也可提供。

实施软件android studio

目标:

ViewPager类型的使用;

LayoutInflater类型布置页面;

pages存储页面类型;

按钮跳转到页面1;

实施代码:

当然可以!下面是一个完整示例,演示如何使用 ViewPagersetCurrentItem() 方法来切换页面。我们用三个简单的页面作为演示内容。


✅ 示例:点击按钮切换 ViewPager 页面(使用 setCurrentItem

1. activity_main.xml 布局文件:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/btnPage1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="跳转到第1页" />

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
</LinearLayout>

2. MainActivity.java 代码:

复制代码
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
import java.util.List;
import android.view.LayoutInflater;
import android.view.ViewGroup;

public class MainActivity extends AppCompatActivity {

    private ViewPager mViewPager;
    private Button btnPage1;

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

        mViewPager = findViewById(R.id.viewPager);
        btnPage1 = findViewById(R.id.btnPage1);

        // 创建页面视图
        List<View> pages = new ArrayList<>();
        LayoutInflater inflater = getLayoutInflater();
        pages.add(inflater.inflate(R.layout.page1, null));
        pages.add(inflater.inflate(R.layout.page2, null));
        pages.add(inflater.inflate(R.layout.page3, null));

        // 设置适配器
        SimplePagerAdapter adapter = new SimplePagerAdapter(pages);
        mViewPager.setAdapter(adapter);

        // 点击按钮跳转到第一页
        btnPage1.setOnClickListener(v -> mViewPager.setCurrentItem(0));  // index 0 = 第1页
    }
}

3. SimplePagerAdapter:

复制代码
package com.example.myapplication;

import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import androidx.viewpager.widget.PagerAdapter;
import java.util.List;

public class SimplePagerAdapter extends PagerAdapter {
    private final List<View> mViewList;
    public SimplePagerAdapter(List<View> viewList) {
        this.mViewList = viewList;
    }

    @Override
    public int getCount() {

        return mViewList.size();
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
        boolean result = (view == object);
        Log.d("isViewFromObject", "判断结果: " + result);
        return result;
    }

    @Override
    public Object instantiateItem(ViewGroup container, int position) {
        View view = mViewList.get(position);
        container.addView(view);
        return view;
    }

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

4. 示例页面布局 page1.xmlpage2.xmlpage3.xml

例如 res/layout/page1.xml

复制代码
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:text="页面 1"
    android:textSize="30sp" />

另外两个页面内容类似,改一下 text="页面 2"text="页面 3" 即可。


如果你使用的是 ViewPager2 而不是旧的 ViewPager,用法稍有不同,我也可以给你新版代码。需要的话可以告诉我。

运行效果:

相关推荐
风流倜傥唐伯虎10 小时前
./gradlew assembleDebug和gradle build区别
android·android studio
我命由我1234511 小时前
Android 开发 Room 数据库升级问题:A migration from 6 to 7 was required but not found.
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
JMchen1231 天前
现代Android图像处理管道:从CameraX到OpenGL的60fps实时滤镜架构
android·图像处理·架构·kotlin·android studio·opengl·camerax
jian110581 天前
Android studio 调试flutter 运行自己的苹果手机上
flutter·智能手机·android studio
jian110581 天前
Android studio配置flutter,mac Android studio 发现苹果手机设备
android·flutter·android studio
henysugar1 天前
Android studio编译aidl若干问题记录
android·ide·android studio·aidl
斯文by累2 天前
Android Studio 2025 SDK路径配置指南
android studio
iwanghang2 天前
Android Studio 2023.2.1 新建项目 不能选择Java 解决方法
android·ide·android studio
我命由我123452 天前
Android 控件 - 最简单的 Notification、Application Context 应用于 Notification
android·java·开发语言·junit·android studio·android jetpack·android-studio
qq_426003963 天前
android studio抓安卓日志使用方式
android·ide·android studio