You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过按钮点击跳转至ViewPager2并设置默认显示第二页?

实现方案

核心思路是通过Intent传递目标页面的索引参数,在ViewPager2所在的Activity中接收参数后,设置ViewPager2显示指定页面。

1. 在跳转的Activity中传递目标页面索引

在包含按钮的Activity里,给按钮添加点击事件,通过Intent携带目标页面的索引(注意ViewPager2的页面索引从0开始,第二个页面对应索引1):

Java 代码示例

button.setOnClickListener(v -> {
    Intent intent = new Intent(this, ViewPagerHostActivity.class);
    // 传递目标页面索引,第二个页面对应1
    intent.putExtra("KEY_TARGET_PAGE", 1);
    startActivity(intent);
});

Kotlin 代码示例

button.setOnClickListener {
    val intent = Intent(this, ViewPagerHostActivity::class.java)
    intent.putExtra("KEY_TARGET_PAGE", 1)
    startActivity(intent)
}

2. 在ViewPager2所在的Activity中接收参数并设置页面

在ViewPager2所属的Activity的onCreate方法中,先完成ViewPager2的初始化(设置适配器等),然后接收Intent传递的参数,最后设置ViewPager2显示目标页面:

Java 代码示例

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_view_pager_host);

    // 初始化ViewPager2和适配器
    ViewPager2 viewPager2 = findViewById(R.id.view_pager2);
    YourPagerAdapter adapter = new YourPagerAdapter(this);
    viewPager2.setAdapter(adapter);

    // 获取传递的目标页面索引,默认值为0(第一个页面)
    int targetPage = getIntent().getIntExtra("KEY_TARGET_PAGE", 0);

    // 使用post确保ViewPager2已完成初始化,再设置当前页面
    viewPager2.post(() -> {
        // 第二个参数为false时直接跳转,true时平滑滚动
        viewPager2.setCurrentItem(targetPage, false);
    });
}

Kotlin 代码示例

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_view_pager_host)

    val viewPager2 = findViewById<ViewPager2>(R.id.view_pager2)
    val adapter = YourPagerAdapter(this)
    viewPager2.adapter = adapter

    val targetPage = intent.getIntExtra("KEY_TARGET_PAGE", 0)
    viewPager2.post {
        viewPager2.setCurrentItem(targetPage, smoothScroll = false)
    }
}

注意事项

  • ViewPager2的页面索引从0开始,所以第二个页面对应的索引是1,不要搞错。
  • 如果需要跳转时带有平滑滚动效果,把setCurrentItem的第二个参数改为true即可。
  • 用post方法是为了确保ViewPager2已经完成视图初始化,避免出现设置无效的情况。

内容的提问来源于stack exchange,提问作者Rumen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 09:30:51