mdu*_*pls 22 android android-actionbar android-tabs
我注意到使用时
actionBar.setSelectedNavigationItem(x)
Run Code Online (Sandbox Code Playgroud)
在我的Activity的onCreate()方法中,始终首先选择位置0处的选项卡项,然后加载位置x处的选项卡项.这意味着(因为我正在使用片段)2片段被加载.其中一个是不必要的......
这是我的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Determine which bundle to use; either the saved instance or a bundle
// that has been passed in through an intent.
Bundle bundle = getIntent().getExtras();
if (bundle == null) {
bundle = savedInstanceState;
}
// Initialize members with bundle or default values.
int position;
if (bundle != null) {
position = bundle.getInt("selected_tab");
} else {
position = 0;
}
// Set the tabs.
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab = actionBar
.newTab()
.setText("Tab 1")
.setTabListener(
new TabListener<RendersGridFragment>(this, "1",
RendersGridFragment.class));
actionBar.addTab(tab);
tab = actionBar
.newTab()
.setText("Tab 2")
.setTabListener(
new TabListener<RendersGridFragment>(this, "2",
RendersGridFragment.class));
actionBar.addTab(tab);
tab = actionBar
.newTab()
.setText("Tab 3")
.setTabListener(
new TabListener<RendersGridFragment>(this, "3",
RendersGridFragment.class));
actionBar.addTab(tab);
actionBar.setSelectedNavigationItem(position);
}
Run Code Online (Sandbox Code Playgroud)
似乎默认情况下最初选择位置0处的选项卡.但是,正如您所看到的,我正在传递bundle以确保在再次运行onCreate()方法时仍然选择最后选择的选项卡.
例如,如果最后选择的选项卡位于位置2,则运行onCreate()并加载位置为0的选项卡,然后加载位置2处的选项卡.
在使用actionBar.setSelectedNavigationItem(position)时,如何确保ActionBar不首先在位置0选择制表符.
sas*_*axi 34
使用其他addTab调用来覆盖此行为.您需要先添加要选择的选项卡(在您的情况下,位置2处的选项卡).相关的Javadoc
actionBar.addTab(tab2);
actionBar.addTab(tab0, 0, false);
actionBar.addTab(tab1, 1, false);
Run Code Online (Sandbox Code Playgroud)
bku*_*ius 18
对于任何其他想要执行此操作的人,您还可以通过设置位置将选项卡设置为选中,然后设置true或false以指示应选择哪个选项卡
actionBar.addTab(tab1, 0, false);
actionBar.addTab(tab2, 1, true);
actionBar.addTab(tab3, 2, false);
Run Code Online (Sandbox Code Playgroud)
以下是此方法的文档:http://developer.android.com/reference/android/app/ActionBar.html#addTab(android.app.ActionBar.Tab,int,boolean)
| 归档时间: |
|
| 查看次数: |
31915 次 |
| 最近记录: |