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,用法稍有不同,我也可以给你新版代码。需要的话可以告诉我。

运行效果:

相关推荐
花王江不语3 小时前
android studio 配置硬件加速 haxm
android·ide·android studio
岁月玲珑1 天前
【使用Android Studio调试手机app时候手机老掉线问题】
android·ide·android studio
小蜜蜂嗡嗡1 天前
Android Studio flutter项目运行、打包时间太长
android·flutter·android studio
summer夏1232 天前
2025.07 做什么
java·android studio
编程乐学12 天前
网络资源模板--基于Android Studio 实现的咖啡点餐App
android·android studio·大作业·奶茶点餐·安卓移动开发·咖啡点餐
编程乐学13 天前
网络资源模板--基于Android Studio 实现的公交线路App
android·android studio·大作业·移动端开发·安卓大作业·公交线路管理
帅次15 天前
Flutter动画全解析:从AnimatedContainer到AnimationController的完整指南
android·flutter·ios·小程序·kotlin·android studio·iphone
技术蔡蔡16 天前
Flutter真实项目中bug解决详解
flutter·面试·android studio
Harry技术16 天前
Fragment 和 AppCompatActivity 两个核心组件设计的目的和使用场景对比
android·android studio
nvvas17 天前
Android Studio Windows安装与配置指南
java·windows·android studio