Android 2.2 tức là API Cấp 8 có tabStripEnabled = "true" cho TabWidget cách đạt được điều tương tự trong phiên bản cũ hơn của Android?tabStripEnabled cho TabWidget trong API cũ hơn của
Trả lời
private void SetupTabs(TabHost tabHost) {
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
TabWidget tw = (TabWidget) ll.getChildAt(0);
Field mBottomLeftStrip;
Field mBottomRightStrip;
try {
mBottomLeftStrip = tw.getClass().getDeclaredField("mBottomLeftStrip");
mBottomRightStrip = tw.getClass().getDeclaredField("mBottomRightStrip");
if (!mBottomLeftStrip.isAccessible()) {
mBottomLeftStrip.setAccessible(true);
}
if (!mBottomRightStrip.isAccessible()) {
mBottomRightStrip.setAccessible(true);
}
mBottomLeftStrip.set(tw, getResources().getDrawable(R.drawable.blank));
mBottomRightStrip.set(tw, getResources().getDrawable(R.drawable.blank));// blank is the name of the image in drawable folder
}
catch (java.lang.NoSuchFieldException e) {
// possibly 2.2
try {
Method stripEnabled = tw.getClass().getDeclaredMethod("setStripEnabled", boolean.class);
stripEnabled.invoke(tw, false);
}
catch (Exception e1) {
e1.printStackTrace();
}
}
catch (Exception e) {}
}
Cảm ơn nhiều!!!! – Eby
Điều này không hiệu quả đối với tôi. Tôi đã thử cả hai trên một giả lập 2.1 và 2.2. Có điều gì khác mà tôi nên xem xét khi sử dụng hack này? Mã được thực thi đúng dựa trên SDK hiện tại nhưng đường viền dưới cùng cho TabWidget vẫn được giữ nguyên. – dannyroa
Điều này làm việc hoàn hảo, một số điều cần lưu ý, tạo ra một hình ảnh minh bạch và đặt tên là trống. Tôi đã thực hiện một thay đổi nhỏ bằng cách nhận xét: LinearLayout ll = (LinearLayout) tabHost.getChildAt (0); TabWidget tw = (TabWidget) ll.getChildAt (0); và thay thế bằng TabWidget tw = tabHost.getTabWidget(); – Fred
tôi đã làm cho nó như vậy:
try {
Method setStripEnabled = tabWidget.getClass().getDeclaredMethod(
"setStripEnabled", boolean.class);
setStripEnabled.invoke(tabWidget, true);
Method setLeftStripDrawable = tabWidget.getClass()
.getDeclaredMethod("setLeftStripDrawable", int.class);
setLeftStripDrawable.invoke(tabWidget, R.drawable.tab_line);
Method setRightStripDrawable = tabWidget.getClass()
.getDeclaredMethod("setRightStripDrawable", int.class);
setRightStripDrawable.invoke(tabWidget, R.drawable.tab_line);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
- 1. Tuỳ chỉnh phong cách dành cho Android của TabWidget
- 2. Cấu trúc cấp cao hơn của .NET 4.5 (hoặc cũ hơn) làm cho luồng dễ dàng hơn?
- 3. Nhân bản một phiên bản cũ hơn của github repo
- 4. TabWidget Chiều cao
- 5. Android TabWidget in Light theme
- 6. Thử nghiệm với các phiên bản cũ hơn của Firefox
- 7. Cách chạy phiên bản cũ hơn của node.js trên windows
- 8. Tải xuống phiên bản cũ hơn của Google Chrome dành cho Linux
- 9. Tài liệu giảng dạy Delphi cũ hơn
- 10. bộ lọc django cũ hơn ngày?
- 11. Tải video lên Facebook REST API cũ
- 12. Xóa tệp cũ hơn X phút
- 13. Cách xóa tệp cũ hơn X giờ
- 14. Phiên bản mới hơn của JRE không tải soundbank nhưng phiên bản cũ hơn
- 15. Thêm SDK iOS cũ hơn vào Xcode 4.1 trong Lion
- 16. ClassNotFindException trong khi chạy mẫu Android EffectiveNavigation cho nền tảng cũ hơn
- 17. Có bản lưu trữ cho các phiên bản cũ hơn của Tiện ích mở rộng của Chrome không?
- 18. Android tabHost và tabWidget icon issue
- 19. TabWidget màu nền trước màu trắng?
- 20. Tôi có thể chỉnh sửa thông báo của bản sửa đổi cũ hơn trong Bazaar không?
- 21. Cách chạy ứng dụng trong phiên bản cũ hơn của Simulator
- 22. Loại bỏ các dòng dưới TabWidget
- 23. Làm thế nào để tạo kiểu cho một TabWidget trong Ice Cream Sandwich?
- 24. PasswordDeriveBytes vs Rfc2898DeriveBytes, cũ nhưng cách nhanh hơn
- 25. Các bản vá hiện có cho tabwidget của Android để cho phép các tab ở phía bên trái?
- 26. std :: back_inserter cần const_reference trên GCC cũ hơn. Tại sao?
- 27. Phát hiện Trình duyệt cũ hơn hai năm
- 28. SVN - Cách sửa đổi phiên bản cũ hơn?
- 29. Nơi tải xuống phiên bản Xcode cũ hơn?
- 30. Android eclipse startManagingCursor Không được chấp nhận nhưng muốn hỗ trợ các phiên bản API cũ hơn?
tôi đã Tabs ở dưới cùng của màn hình, Vì vậy, tôi đã làm điều đó như sau ... tôi đặt android: layout_marginBottom = "- 10dip" di chuyển bottomStrip khỏi màn hình nhưng muốn biết một cách chính xác để làm điều đó ... nhờ –
amithgc