正如标题所示,我有一个Android 4.0平板电脑应用程序,它使用操作栏和标签模式。
如果我向操作栏添加超过4或5个选项卡,则会创建一个下拉列表。我已阅读文档,其中指出,“注意:在某些情况下,Android系统会将操作栏标签显示为下拉列表,以确保最适合操作栏。”
只是想知道是否可以覆盖默认行为并让动作栏滚动项目?设计文档http://developer.android.com/design/patterns/actionbar.html讨论了可滚动的选项卡,但除了在设计文档中,我似乎无法找到关于它们的任何信息。
答案 0 :(得分:10)
我一直在努力让这个工作。但是,在使用ActionBarSherlock后,解决方案非常容易。如果您下载示例Styled源并查看MainActivity类,您可以看到它创建并添加选项卡,并在其下方:
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
我在添加标签之前调用了这些标签,我的标签已经变成了一个下拉列表。事实证明,您需要做的就是在添加标签后调用它们以保留滚动标签。
答案 1 :(得分:2)
阅读http://developer.android.com/guide/topics/ui/actionbar.html
中的“添加操作视图”部分操作视图是一个小部件,它显示在操作栏中,作为操作项按钮的替代。
您可以通过指定
将HorizontalScrollView
用作操作视图
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/mytabwidget"
android:title=""
android:icon="@drawable/ic_launcher"
android:showAsAction="always"
android:actionViewClass="android.widget.HorizontalScrollView" />
</menu>
在HorizontalScrollView
public boolean onCreateOptionsMenu(Menu menu)
使用RadioGroup
定义RadioButton
,其中每个RadioButton
选中后,都会更新其关联的标签内容。现在将此RadioGroup
添加到HorizontalScrollView
public boolean onCreateOptionsMenu(Menu menu)
您可以使用selectTab(ActionBar.Tab tab)
或其他等效方法更新标签内容。
您可以通过将RadioButton
设置为透明图片然后设置一些android:button
状态来更改StateListDrawable
的外观,并选中状态,然后选择正常状态。
见下面我使用这种方法的屏幕。
在上图中,选中每个RadioButton
时,会选择不同的标签。
答案 2 :(得分:0)
你有没有看过SDK中的Honeycomb Gallery示例应用程序?它可能有你想要的东西。将其安装在ICS非平板电脑设备上以查看可滚动选项卡。平板电脑的屏幕空间太大,无法滚动。
http://developer.android.com/resources/samples/HoneycombGallery/index.html
答案 3 :(得分:-1)
用户界面的工作方式是有原因的。拥有一组可滚动的选项卡非常令人困惑。很可能根本不清楚右侧有更多选项卡,用户永远不会知道他们可以滚动标签以获得更多功能。
我建议坚持平台的设计方式。它通常是有原因的。