Android 中的制表符和片段
Tabs and fragments in Android
我已经使用 android.support.v4.app.Fragment
和 FragmentStatePagerAdapter
在我的 android 应用程序中创建了选项卡。它工作正常(我可以随心所欲地在选项卡之间滑动),但我有一个似乎无法解决的问题。
我有一个主屏幕,我在其中向 ActionBar
添加了两个选项卡。在扩展 FragmentStatePagerAdapter
的 class 中,我有以下代码:
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return new Fragment1();
case 1:
return new Fragment2();
}
return null;
}
所以我的问题是:在片段中,我希望 activity 在第一次选择选项卡时出现。目前我在 Fragment1
和 Fragment2
中的 onCreateView()
中有这段代码,但这发生在主屏幕第一次启动时,而不是第一次选择选项卡时。
有什么方法可以让某些事情只在第一次选择 Fragment 时发生?第一次选择该选项卡时,我希望发生的是 Activity 开始从用户那里收集一些信息,这是一次性事件。它有效,但正如我所解释的那样,当我进入主屏幕时会弹出此页面,这不是我想要的。
实现方法
onTabSelected(ActionBar.Tab tab, FragmentTransaction ft)
并将您的代码移到那里。为此,您的 activity 将需要实现接口 ActionBar.TabListener.
然后,如果这是第一次使用布尔变量选择选项卡,您将需要进行跟踪。
我已经使用 android.support.v4.app.Fragment
和 FragmentStatePagerAdapter
在我的 android 应用程序中创建了选项卡。它工作正常(我可以随心所欲地在选项卡之间滑动),但我有一个似乎无法解决的问题。
我有一个主屏幕,我在其中向 ActionBar
添加了两个选项卡。在扩展 FragmentStatePagerAdapter
的 class 中,我有以下代码:
@Override
public Fragment getItem(int i) {
switch (i) {
case 0:
return new Fragment1();
case 1:
return new Fragment2();
}
return null;
}
所以我的问题是:在片段中,我希望 activity 在第一次选择选项卡时出现。目前我在 Fragment1
和 Fragment2
中的 onCreateView()
中有这段代码,但这发生在主屏幕第一次启动时,而不是第一次选择选项卡时。
有什么方法可以让某些事情只在第一次选择 Fragment 时发生?第一次选择该选项卡时,我希望发生的是 Activity 开始从用户那里收集一些信息,这是一次性事件。它有效,但正如我所解释的那样,当我进入主屏幕时会弹出此页面,这不是我想要的。
实现方法
onTabSelected(ActionBar.Tab tab, FragmentTransaction ft)
并将您的代码移到那里。为此,您的 activity 将需要实现接口 ActionBar.TabListener.
然后,如果这是第一次使用布尔变量选择选项卡,您将需要进行跟踪。