本文演示了Android Studio中使用ViewPager实现页面切换的方法。通过创建包含3个页面的ViewPager示例,详细展示了实现步骤:1)在XML布局中配置ViewPager和切换按钮;2)使用LayoutInflater动态加载页面布局;3)自定义SimplePagerAdapter适配器;4)通过setCurrentItem()方法实现按钮点击切换页面功能。代码包含完整的Activity、Adapter实现以及页面布局示例,适用于基础ViewPager使用场景,如需ViewPager2版本也可提供。
实施软件android studio
目标:
ViewPager类型的使用;
LayoutInflater类型布置页面;
pages存储页面类型;
按钮跳转到页面1;
实施代码:
当然可以!下面是一个完整示例,演示如何使用 ViewPager
和 setCurrentItem()
方法来切换页面。我们用三个简单的页面作为演示内容。
✅ 示例:点击按钮切换 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.xml
、page2.xml
、page3.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
,用法稍有不同,我也可以给你新版代码。需要的话可以告诉我。
运行效果:
