Tôi không biết mình đã làm gì nhưng trong một khoảng thời gian TabWidget của tôi có các tab màu trắng trông rất đẹp. Tôi không bao giờ thiết lập một chủ đề hoặc nền/màu nền trước trong dự án của tôi cả. Lần sau tôi biên dịch nó, nó đã hoàn nguyên trở lại các tab màu xám. Ứng dụng của tôi đang sử dụng chủ đề tối mặc định. Ngay cả khi tôi đặt chủ đề ứng dụng thành ánh sáng, các tab vẫn có màu xám. Vì vậy, rõ ràng nó là cái gì khác mà thay đổi màu sắc của các tab. Bất cứ ai biết làm thế nào để làm điều này?TabWidget màu nền trước màu trắng?
Trả lời
tôi đã gặp sự cố do lỗi trong chủ đề ánh sáng của Android 1.6 (văn bản chỉ báo tab có màu trắng). Tôi đã có thể ghi đè lên các theme mặc định như sau:
- Tôi tạo ra một chủ đề tùy chỉnh mà thừa hưởng từ chủ đề mặc định:
styles.xml
:
<style name="MyTheme" parent="@android:style/Theme.Light">
<item name="android:tabWidgetStyle">@style/LightTabWidget</item>
</style>
<style name="LightTabWidget" parent="@android:style/Widget.TabWidget">
<!-- set textColor to red, so you can verify that it applied. -->
<item name="android:textColor">#f00</item>
</style>
Sau đó, tôi chỉ áp dụng đề tài mà vào ứng dụng của tôi bằng cách thêm android:theme="@style/MyTheme"
vào phần tử <application />
trong số AndroidManifest.xml
của tôi.
thanx steve, nó đã giúp tôi và bạn thực hiện cuộc sống của tôi –
Kiểm tra câu trả lời này của tôi: Background in tab widget ignore scaling
Bạn cũng có thể tham khảo các android.graphics.drawable
gói
Trong code của bạn, bạn có thể đặt nền tảng cho các tab của bạn như thế này:
tabHost.getTabWidget().getChildAt(0).setBackgroundResource(
android.R.color.white);
Điều này làm cho nền nền màu đen không có vấn đề gì. – Monstieur
trong public void onCreate(Bundle savedInstanceState)
`tabHost = getTabHost();
tabHost.setOnTabChangedListener(this);
tabHost.setCurrentTab(0);
setTabColor();`
so với người nghe:
public void onTabChanged (String tabId) { setTabColor();
cuối cùng là chức năng, trong đó thiết lập foreground và background quá:
public void setTabColor() {
// set foreground color:
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
RelativeLayout rl = (RelativeLayout) tabHost.getTabWidget().getChildAt(i);
ImageView imageView = (ImageView) rl.getChildAt(0);// change it if you want it
TextView textView = (TextView) rl.getChildAt(1);//
textView.setTextColor(Color.parseColor("#FFFFFF"));
}
// set background color:
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) {
tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#010101")); // unselected
}
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#121288")); // selected
}
Trong onCreated():
tabHost.setCurrentTab(0);
// Set tabs text color to white:
TabWidget tabWidget = tabHost.getTabWidget();
int whiteColor = getResources().getColor(R.color.white);
int someOtherColor = getResources().getColor(R.color.someOtherColor);
for(int i = 0; i < tabWidget.getChildCount(); i++){
View tabWidgetChild = tabWidget.getChildAt(i);
if(tabWidgetChild instanceof TextView){
((TextView) tabWidgetChild).setTextColor(whiteColor);
} else if(tabWidgetChild instanceof Button){
((Button) tabWidgetChild).setTextColor(whiteColor);
} else if(tabWidgetChild instanceof ViewGroup){
ViewGroup vg = (ViewGroup)tabWidgetChild;
for(int y = 0; y < vg.getChildCount(); y++){
View vgChild = vg.getChildAt(y);
if(vgChild instanceof TextView){
((TextView) vgChild).setTextColor(whiteColor);
}
}
vg.setBackgroundColor(someOtherColor);
}
}
- 1. Kết cấu màu trắng trắng trên nền Samsung Galaxy
- 2. Graphics2D: Vẽ màu đen trên nền trắng?
- 3. Văn bản trên spinner có màu trắng trên nền trắng
- 4. Cài đặt TabItem màu nền trước cũng đặt màu nền trước TabControl
- 5. Làm cách nào để đặt màu nền mặc định và màu nền trước?
- 6. Hình dạng tô màu Matlab màu trắng
- 7. Màu nền UIWebView
- 8. Video HTML5 Html5 không thể hiển thị màu trắng, có nền màu xám
- 9. Màu trắng đến độ trong suốt với hình nền
- 10. HTML/CSS - Tại sao màu nền chuyển sang màu trắng khi in?
- 11. Thay đổi Navigationbar màu (màu nền)
- 12. iOS 5.1: - [Màu UIColorWithPatternImage:] màu nền vẽ màu đen rắn
- 13. Làm thế nào để quyết định màu phông chữ màu trắng hoặc đen tùy thuộc vào màu nền?
- 14. Độ mờ CSS - màu nền
- 15. canvas ImageData xóa các pixel màu trắng
- 16. màu nền trong OpenGL
- 17. iOS - Thiết UIButton màu nền chỉ màu các góc
- 18. Chỉ màu tô màu trắng trong suốt ở UIView
- 19. Đặt màu nền trước cho HSSFCellStyle luôn xuất hiện màu đen
- 20. Màu nền của iPhone UIButton
- 21. Cách đặt màu nền trước của nút SWT?
- 22. Eclipse không áp dụng lựa chọn màu nền trước
- 23. iphone uiwebview xem màu trắng ban đầu
- 24. thay đổi màu nền
- 25. đặt màu nền: Android
- 26. nút Android màu nền
- 27. Wpf nền màu animate
- 28. Eclipse màu Thước nền
- 29. remoteview màu nền framelayout
- 30. Thay đổi màu nền UIView lập trình
Bạn có lẽ thử nghiệm trên hai phiên bản khác nhau của nền tảng này? Kiểu tab đã thay đổi trong 2.0. Ngoài ra, nếu bạn có thể đăng ảnh chụp màn hình, được chụp bằng 'DDMS', nó sẽ giúp ích rất nhiều. –
Ah, vâng. Nó được biên dịch từ 1.6. Có cách nào để tự đặt cùng màu cho 2.0+ không? – Monstieur
Tôi gặp sự cố này và xác định rằng thuộc tính 'targetSdkVersion' trong AndroidManifest.xml đã khiến nó thay đổi đối với tôi. –