如何为Android Fragments(Tabs Activity)实现onBackPressed
Posted
技术标签:
【中文标题】如何为Android Fragments(Tabs Activity)实现onBackPressed【英文标题】:How to Implement onBackPressed for Android Fragments(Tabs Activity) 【发布时间】:2019-02-01 13:58:40 【问题描述】:我正在开发一个包含 Tabs
Activity 的 android 应用程序。我的Tabs
活动包含四个tabs(Fragments--[1][2][3][4])
。我想要的是当我按下后退按钮时,它必须重定向到上一个选项卡,而不是第一个选项卡。喜欢
[4] -> [3]
[3] -> [2]
[2] -> [1]
[1] -> Alert to logout from the App
请帮帮我。我必须在TabsActivity
课堂上写什么。
【问题讨论】:
您可以通过 2 种方式进行操作。答案中提到了第一个。第二个是使用instanceof
方法,如下所示 if (mFragment instanceof mFragmentClass) // 执行你的逻辑
【参考方案1】:
假设
你的四个片段被 ViewPager 加热了。
逻辑
您可以将代码写入
@Override
void onBackPressed()
if(viewPager.getCurrentItem==3)
viewPager.setCurrentItem(2)
else if
同样的道理
【讨论】:
【参考方案2】:使用逻辑而不是硬编码页码。
以下解决方案适用于 Viewpager
中的每个项目数 2,3,... n。
@Override
public void onBackPressed()
if (viewPager.getCurrentItem() != 0)
viewPager.setCurrentItem(viewPager.getCurrentItem() - 1);
else super.onBackPressed();
如果您使用的是TabHost
,那么您可以使用this solution.
【讨论】:
【参考方案3】:在您附加的活动onBackPressed()
中,您必须执行如下操作,
@Override
void onBackPressed()
if(viewPager.getCurrentItem==3)
viewPager.setCurrentItem(2)
else if
//do your stuff here
【讨论】:
以上是关于如何为Android Fragments(Tabs Activity)实现onBackPressed的主要内容,如果未能解决你的问题,请参考以下文章
Android 2.2 + ViewPager和Fragments实现TabHost使用教程
Android FragmentActivity 和 Tabs 的问题
带有 Fragments 和 FragmentActivity 的 TabHost