我正在使用ActionBarSherlock
库开发Android应用程序。在一项活动中,我使用标签式导航和折叠的ActionBar
(底部的操作项)。
在此图片中,您可以看到{{1>}处于当前状态:标签正在第二行中推送。
在下图中,您可以看到Activity
我想要的方式:标签应位于顶行,而不是第二行。我已经阅读了Activity
和ActionBar
文档,但没有办法强制执行此操作。
这是当前代码,用于创建ActionBarSherlock
。
ActionBar
有什么想法吗?
答案 0 :(得分:5)
有一个反映'黑客'来做到这一点。我不相信这个解决方案,我在StackOverflow问题replicate ActionBar Tab(s) with custom view中找到了。
//pre-ICS
if (actionBarSherlock instanceof ActionBarImpl) {
enableEmbeddedTabs(actionBarSherlock);
//ICS and forward
} else if (actionBarSherlock instanceof ActionBarWrapper) {
try {
Field actionBarField = actionBarSherlock.getClass().getDeclaredField("mActionBar");
actionBarField.setAccessible(true);
enableEmbeddedTabs(actionBarField.get(actionBarSherlock));
} catch (Exception e) {
Log.e(TAG, "Error enabling embedded tabs", e);
}
}
//helper method
private void enableEmbeddedTabs(Object actionBar) {
try {
Method setHasEmbeddedTabsMethod = actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class);
setHasEmbeddedTabsMethod.setAccessible(true);
setHasEmbeddedTabsMethod.invoke(actionBar, true);
} catch (Exception e) {
Log.e(TAG, "Error marking actionbar embedded", e);
}
}
另请参阅此博文:http://sparetimedev.blogspot.co.uk/2012/11/forcing-embedded-tabs-in-actionbar.html