Tôi chạy vào cùng một vấn đề. Trên các thiết bị điện thoại ở chế độ dọc, thanh tác vụ được chia nhỏ. Vì vậy, các mục menu nằm trong thanh hành động trên cùng và các tab trong thanh hành động thứ hai (thanh tab) bên dưới. Tôi chỉ không tìm thấy bất kỳ cách nào có thể để xác định chiều cao của thanh hành động: để xem không gian còn lại trên màn hình trước khi tạo màn hình của tôi.
Vì vậy, tôi đã làm một giả định:
- trên các thiết bị screensize nhỏ và bình thường actionbar được chia ở chế độ dọc
- trên các thiết bị screensize lớn (như Nexus 7) actionbar cũng được chia ở chế độ dọc
- trên các thiết bị screensize xlarge (tablet) các actionbar không chia ở chế độ dọc
Vì vậy, tôi phân biệt screensizes khác nhau và tạo ra một nguồn lực 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>
Trong đoạn code tôi truy cập giá trị như thế này:
Boolean isSplit = getResources().getBoolean(R.bool.is_split_actionbar);
Để có được chiều cao actionbar trong onCreateView() phương pháp:
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);
Và đôi chiều cao nếu actionbar được chia tách:
if(isSplit)
actionBarHeight = actionBarHeight * 2;
Nó không phải là một giải pháp lý tưởng, nhưng đối với tôi công trình này.
Nguồn
2012-11-09 08:09:57
Có, tôi cũng cần biết liệu nó có tồn tại hay không. Dù sao, tôi đã nói (bởi Roman tôi nghĩ) trên Android Office Hours rằng điều này chỉ đơn giản là không thể. Ít nhất không phải là một cách dễ dàng và thẳng về phía trước. Do đó, chúng tôi hiện đang thử nghiệm với một thanh tác vụ hàng đầu và bắt chước thanh tác vụ dưới cùng với chế độ xem thông thường thay thế. Điều này giải quyết không chỉ vấn đề này mà còn là vấn đề khác mà chúng tôi muốn "ép buộc" một số hành động vào thanh tác vụ hàng đầu. – pakerfeldt