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

运行效果:

相关推荐
hashiqimiya16 小时前
android studio底部导航栏
android·ide·android studio
ThMoonAdSixPence17 小时前
在Android Studio中复现AOSP原生GL2JNI图形渲染应用
android·android studio
帅次21 小时前
Flutter setState() 状态管理详细使用指南
android·flutter·ios·小程序·kotlin·android studio·iphone
我命由我123452 天前
Android Studio 问题:Android Studio 一直开在 Updating indexes
android·java·ide·java-ee·android studio·android jetpack·android-studio
编程乐学2 天前
基于Android 开发完成的购物商城App--前后端分离项目
android·android studio·springboot·前后端分离·大作业·购物商城
这个家伙很笨2 天前
了解Android studio 初学者零基础推荐(4)
android·ide·android studio
hashiqimiya2 天前
android studio中修改java逻辑对应配置的xml文件
xml·java·android studio
5upport3 天前
Gradle Version Catalog的IDE辅助工具
gradle·android studio·intellij idea
李斯维5 天前
循序渐进 Android Binder(二):传递自定义对象和 AIDL 回调
android·java·android studio