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

运行效果:

相关推荐
Mr_万能胶6 小时前
到底原研药,来瞧瞧 Google 官方《Android API 设计指南》
android·架构·android studio
BINGCHN7 小时前
NSSCTF每日一练 SWPUCTF2021 include--web
android·前端·android studio
Ryan ZHENG1 天前
[Android][踩坑]Android Studio导入core-libart.jar
android·android studio·jar
BoomHe1 天前
车载应用配置系统签名
android·android studio
路人甲ing..1 天前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
路人甲ing..1 天前
Android Studio 模拟器报错 The emulator process for AVD xxxxx has terminated.
android·java·ide·kotlin·android studio
bqliang2 天前
从喝水到学会 Android ASM 插桩
android·kotlin·android studio
圆肖2 天前
File Inclusion
android·ide·android studio
花花鱼3 天前
android studio引用三方库的方法,比如SmartRefreshLayout
android·ide·android studio
路人甲ing..4 天前
Ubuntu怎么安装tar.gz (android-studio为例)
linux·ubuntu·kotlin·android studio