当前位置: 首页 > news >正文

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"><Buttonandroid:id="@+id/btnPage1"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="跳转到第1页" /><androidx.viewpager.widget.ViewPagerandroid: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;@Overrideprotected 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;}@Overridepublic int getCount() {return mViewList.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {boolean result = (view == object);Log.d("isViewFromObject", "判断结果: " + result);return result;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {View view = mViewList.get(position);container.addView(view);return view;}@Overridepublic 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,用法稍有不同,我也可以给你新版代码。需要的话可以告诉我。

运行效果:

相关文章:

  • 【Zephyr 系列 19】打造 BLE 模块完整 SDK:AT 命令系统 + 状态机 + NVS + OTA 一体化构建
  • Kotlin基础语法五
  • 调试`build.sh` 和用 `CMake` 编译出来的 `.elf` / `.bin` / `.hex` 文件大小或行为不同?
  • 大模型在输尿管下段积水预测及临床应用的研究
  • uni-app学习笔记三十六--分段式选项卡组件的使用
  • 电机控制基础,小白入门篇
  • Windows笔记之Win11让非焦点窗口程序也能获得流畅性能的方法
  • 计算机网络第3章(上):数据链路层全解析——组帧、差错控制与信道效率
  • Monkey 测试的基本概念及常用命令(Android )
  • uniapp 云打包 iOS 应用上传到 app store 商店的过程
  • 数据库连接池——关键技术点介绍
  • Kafka 2.7.0 单节点安装与启动教程(适配 JDK 1.8)
  • PostgreSQL --数据库操作
  • C# OAuth2密码模式接口鉴权
  • vue防止按钮重复点击方案
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | FAQ Collapse(问题解答折叠面板)
  • 如何使用vue2设计提示框组件
  • python-docx 库教程
  • Linux内核学习资料-deepseek
  • OPenCV CUDA模块图形变换----构建透视变换映射表函数buildWarpPerspectiveMaps()
  • 国外教做美食网站/看seo
  • 用jq和ajax做能登陆注册的一个网站/网站运营工作的基本内容
  • 户外俱乐部网站模板/最新国际消息
  • 济南软月建站/永久免费无代码开发平台网站
  • 微信服务号菜单链接网站怎么做/郑州搜索引擎优化公司
  • 网站关键词如何优化/南宁百度首页优化