我遇到了同樣的問題。在縱向模式的手機設備上,操作欄被分割。因此,菜單項位於頂部的操作欄中,下面的第二個操作欄(tabbar)中的選項卡。我只是沒有找到任何可能的方法來確定操縱桿的高度:在構建屏幕之前查看屏幕上剩餘的空間。
所以我做了一個假設:
- 小和正常屏幕尺寸設備的動作條在肖像模式分爲大屏幕尺寸設備(如Nexus 7)的動作條也被分割在縱向模式
-
- 上XLARGE屏幕尺寸的裝置(片劑)的動作條未在縱向模式分割
所以我區分不同screensizes和創建一個bool資源
<!-- res/values/booleans.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_split_actionbar">false</bool>
</resources>
<!-- res/values-small-port/booleans.xml
res/values-normal-port/booleans.xml
res/values-large-port/booleans.xml -->
<?xml version="1.0" encoding="utf-8"?>
<resources>
<bool name="is_split_actionbar">true</bool>
</resources>
在代碼中,我訪問值這樣的:
Boolean isSplit = getResources().getBoolean(R.bool.is_split_actionbar);
爲了讓動作條的高度在onCreateView()方法:
TypedValue typedVal = new TypedValue();
getActivity().getTheme().resolveAttribute(R.attr.actionBarSize, typedVal, true); // use android.R when not using ABS
int actionBarHeight = getResources().getDimensionPixelSize(typedVal.resourceId);
和雙重高度,如果動作條分割:
if(isSplit)
actionBarHeight = actionBarHeight * 2;
這不是一個理想的解決方案,但對我來說這是可行的。
是的,我也需要知道它是否存在。無論如何,我被告知(通過羅馬我認爲)在Android辦公時間,這根本是不可能的。至少不是簡單而直接的方式。因此,我們現在正在嘗試使用單個頂級操作欄,並使用常規視圖模仿底部操作欄。這不僅解決了這個問題,還解決了另一個問題,我們希望將某些操作「強制」到頂級操作欄。 – pakerfeldt 2012-04-18 11:29:24