Android 选项卡布局 - 如何使用按钮而不是选项卡指示器来触发点击事件?



所以我有一个标准的tabLayout,它位于ViewPager中。

但是最后一个选项卡需要打开一个新活动。 它的唯一目的是打开一个新活动。 当用户通过按后退按钮从活动返回时,应选择用户所在的最后一个选项卡。

我的选项卡是自定义视图,其中有 4 个,但最后一个应该是触发事件的按钮。 因此,它看起来就像一个选项卡,但实际上将是一个带有 OnClick 侦听器的按钮。 我怎样才能做到这一点? 我想知道是否可以使用框架布局并激活最后一个选项卡图标。 这是我能看到的唯一方法是获取自定义视图并将其父视图设置为可单击视图,以便吸收 Click 事件。然后,我可以在父级上设置一个 onclick 侦听器来打开活动。但是如何处理滑动到该选项卡?轻扫也应该打开该活动。

假设您使用的是TabLayout.setupWithViewPager(),您可以通过简单地添加一个额外的选项卡并更改OnTabSelectedListener来完成您想要的。

// normal setup
tabs.setupWithViewPager(pager);
// our extra tab
tabs.addTab(tabs.newTab().setText("extra"));
// remove the `OnTabSelectedListener` created by `setupWithViewPager()`
tabs.clearOnTabSelectedListeners();
// add our own `OnTabSelectedListener`
tabs.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(pager) {
@Override
public void onTabSelected(TabLayout.Tab tab) {
if (tab.getPosition() == pager.getAdapter().getCount()) {
// special case for the last tab in the list
Intent intent = new Intent(MainActivity.this, OtherActivity.class);
startActivity(intent);
}
else {
// otherwise, handle as normal
super.onTabSelected(tab);
}
}
});

最新更新