gpt4 book ai didi

java - Android 4+ 操作栏选项卡在首次启动时显示为下拉列表 - 为了防止?

转载 作者:行者123 更新时间:2023-12-01 11:05:10 25 4
gpt4 key购买 nike

我正在开发一个 Android 4+ 应用程序,它使用 ActionBar 选项卡来导航 android.support.v4.view.ViewPager。这工作正常,除非应用程序在安装后第一次启动时除外。在这种情况下,选项卡将显示为下拉列表。

这是 MainActivity 的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:choiceMode="singleChoice"
style="@style/NavigationDrawerListView" />

<ListView
android:id="@+id/right_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
style="@style/ShortcutsListView" />
</android.support.v4.widget.DrawerLayout>

使用初始化代码MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
...

// TabBar
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
viewPager = (ViewPager)findViewById(R.id.pager);
viewPager.setAdapter(sectionsPagerAdapter);

currentPageIndex = (savedInstanceState != null ? savedInstanceState.getInt(CURRENT_PAGE_INDEX_KEY, -1) : -1 );
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
getActionBar().setSelectedNavigationItem(position);
updateCurrentPageIndex(position);
}
});

// ActionBar
ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);

ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(Tab tab, android.app.FragmentTransaction arg1) {
viewPager.setCurrentItem(tab.getPosition());
}

public void onTabReselected(Tab arg0, android.app.FragmentTransaction arg1) { }
public void onTabUnselected(Tab arg0, android.app.FragmentTransaction arg1) { }
};

actionBar.addTab(actionBar.newTab()
.setText(R.string.MainPageTitle)
.setTabListener(tabListener));
actionBar.addTab(actionBar.newTab()
.setText(R.string.ContactsPageTitle)
.setTabListener(tabListener));
actionBar.addTab(actionBar.newTab()
.setText(R.string.SettingsPageTitle)
.setTabListener(tabListener));
actionBar.addTab(actionBar.newTab()
.setText(R.string.MessagePageTitle)
.setTabListener(tabListener));


// http://stackoverflow.com/questions/14672984/
// Set NavigationMode AFTER alle tabs have been added
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

...
}

据我所知,第一次发布确实是这里唯一的区别。但我不知道这如何影响选项卡。

知道如何始终使用选项卡而不使用下拉列表吗?

最佳答案

Any idea how to allways use tabs and never drop down list?

首先,操作栏选项卡一年前已被弃用。

第二,you have never had control whether action bar tabs show up as tabs versus a drop-down list .

我建议您使用其他选项卡解决方案,无论是 SDK 设计支持库中的 TabLayoutthird-party tabs associated with a ViewPagerFragmentTabHost

关于java - Android 4+ 操作栏选项卡在首次启动时显示为下拉列表 - 为了防止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33039054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com