java怎么切换下一个面板_如何切换回选项卡式活动中按下的前一个选项卡

使用以下代码来实现它 . (代码也经过测试 . )

1.Initialise一个整数列表和一个布尔值;

private boolean isBackPressed = false;

private boolean isBackPressedOnce = false;

private List tabsInBack = new ArrayList<>();

2.现在你的onTabSelectedListener必须是这样的

tabs.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {

@Override

public void onTabSelected(TabLayout.Tab tab) {

if(!isBackPressed){

tabsInBack.add(tab.getPosition());}

else {

isBackPressed = false;}

}

@Override

public void onTabUnselected(TabLayout.Tab tab) {

}

@Override

public void onTabReselected(TabLayout.Tab tab) {

}

});

3(i) . 现在你的onBackPressed()函数必须是,(一个标签然后关闭)

@Override

public void onBackPressed() {

isBackPressed = true;

if (tabsInBack != null && tabsInBack.size() > 0) {

if (tabs.getSelectedTabPosition() == tabsInBack.get(tabsInBack.size() - 1)) {

tabsInBack.remove(tabsInBack.size() - 1);

}

if (tabsInBack != null && tabsInBack.size() > 0) {

tabs.getTabAt(tabsInBack.get(tabsInBack.size() - 1)).select();

tabsInBack.remove(tabsInBack.size() - 1);

} else {

super.onBackPressed();

}

} else {

super.onBackPressed();

}

}

3(ii) . 现在你的onBackPressed()函数必须是,(返回所有选中的选项卡,然后关闭)

@Override

public void onBackPressed() {

isBackPressed = true;

if (tabsInBack != null && tabsInBack.size() > 0) {

if (tabs.getSelectedTabPosition() == tabsInBack.get(tabsInBack.size() - 1)) {

tabsInBack.remove(tabsInBack.size() - 1);

}

if (tabsInBack != null && tabsInBack.size() > 0) {

tabs.getTabAt(tabsInBack.get(tabsInBack.size() - 1)).select();

tabsInBack.remove(tabsInBack.size() - 1);

if(isBackPressedOnce )

{

super.onBackPressed();

}

else

{

isBackPressedOnce = true;

}

} else {

super.onBackPressed();

}

} else {

super.onBackPressed();

}

}

让我知道它是否有帮助 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值