【发布时间】:2013-07-03 08:00:18
【问题描述】:
我正在尝试让选项卡出现在主操作栏上,就像它们在 the Android Developers site 上显示的那样
我写了这个基本代码:
package com.example.test;
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.Menu;
public class MainActivity extends Activity implements ActionBar.TabListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Set up the action bar.
final ActionBar actionBar = getActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Tab tab = actionBar.newTab().setTabListener(this).setText("TAB LEFT");
actionBar.addTab(tab);
tab = actionBar.newTab().setTabListener(this).setText("TAB CENTER");
actionBar.addTab(tab);
tab = actionBar.newTab().setTabListener(this).setText("TAB RIGHT");
actionBar.addTab(tab);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {}
}
但它显示了这一点(选项卡被拆分为堆叠的操作栏):
网站声明:
...系统为不同的屏幕调整操作栏选项卡 尺寸——将它们放在主操作栏中当屏幕显示 足够宽,或在单独的条形图中(称为“堆叠动作 bar") 当屏幕太窄时,如图 9 和 10 所示。
我认为屏幕足够宽,可以将整个操作栏放在主栏上。我尝试只定义一个选项卡,但它仍然有自己的堆叠条。
我有 API Demos,但我找不到他们提到的“Honeycomb Gallery”示例,所以我可以检查他们的代码。
我也尝试将 ActionBar 导航模式设置为 STANDARD 和 LIST,但无济于事。
【问题讨论】:
-
将屏幕旋转到横向时是否有效?
-
@StephaneMathis 是的,在横向模式下它可以工作。那么,它是否让您知道发生了什么?
-
我认为这只是Android认为在ActionBar中以纵向显示手机标签不是一个好主意。这样做是为了节省屏幕空间,但是在比宽屏幕更高的地方节省垂直空间是没有用的。
-
如果您总是想在 ActionBar 中设置标签,您可以通过在操作栏中放置自定义视图并自己管理所有内容来强制执行您想要的操作。
-
@StephaneMathis 一方面,您对 Android 的看法可能是正确的。另一方面,文档并没有说明在纵向模式下 ActionBar 规则会发生变化。我开始搜索自定义视图,这意味着我将不得不复制 TAB 的外观并模仿选项卡的行为,由于实现错误,我不喜欢做这么多工作(是的,当规范说时我称之为错误它应该适合主 ActionBar,但它不适合)。最后,什么是无用的,什么是无用的,取决于要编程的应用程序,你不能预先假设它。