在我的应用程序中,我有三个与<{3}}类似的片段标签。此外,我还有一个主要活动,而不是这三个标签。我的问题是当应用程序启动时,它已被选中第一个选项卡,并始终显示与其相关的片段。
但我需要在应用程序启动时显示主要活动,如果用户选择仅显示相关片段。如何处理这种情况?任何建议,将不胜感激。
这是标签片段代码示例: MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mainActivity);
viewPager=(ViewPager) findViewById(R.id.fragment);
actionBar=getActionBar();
mAdapter=new TabPageAdapter(getSupportFragmentManager());
viewPager.setAdapter(mAdapter);
for(String tabName: tabs){ actionBar.addTab(actionBar.newTab().setText(tabName).setTabListener(this));
}
viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2){
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
});
}
修改
清单文件
<activity
android:name="com.example.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
此处标签片段也在我的主要活动中。主要活动也有自己的布局。我在清单文件中添加了如上所述的LAUNCHER活动。这里发生的是当应用程序启动时,选项卡片段布局(第一个)显示始终没有MainActivity布局。我只有在用户选择它们时才需要显示这些标签片段。
答案 0 :(得分:0)
在与片段挣扎之后,我终于找到了解决方案。我怀疑是否有更好的解决方案。如果有任何感觉,请在这里更新。希望这对面临同样问题的人有所帮助。
出现问题的原因是,虽然我在清单中定义了LAUNCHER
活动,但同一活动包含片段选项卡。因此,总是选择默认选项卡,因此,片段布局始终可见,无法查看活动布局。所以我所做的是,xml of ViewPager
即将消失。
android:visibility="gone"
然后在我的活动中,我创建了一个变量来检测应用是否第一次启动,而用户仍然没有选择任何标签。
boolean isStart=true;
然后在onTabSelected()
方法中检查isStart=false
表示用户选择了该标签。然后我设置了viewPager to VISIBLE
。
答案 1 :(得分:0)
在MainActivity
中创建应用启动时打开的主显示屏。并在MainActivity
创建按钮以strat包含片段选项卡的其他活动。并在清单文件中注册此新活动。如果用户有兴趣继续进行标签活动,那么他会打开,否则不会。