Tôi muốn các tab Android của mình trông phẳng và đơn giản như các tab trong ứng dụng TWitter chính thức. Làm cách nào tôi có thể ghi đè chủ đề mặc định (ánh sáng) và thay đổi hình nền cho các tab bằng cách sử dụng định nghĩa kiểu/chủ đề?Làm cách nào để thay đổi kiểu tab trong Android?
Trả lời
Bạn có thể điều chỉnh các tab thông qua mã - đây là trích đoạn từ ứng dụng của tôi, nhưng bạn cũng có thể chỉ định chủ đề thay vì trực tiếp hình nền. (Tôi đã không được sử dụng một cách thông qua các thuộc tính xml được nêu ra, không chắc chắn nếu đó là có sẵn cũng bằng cách nào đó).
private void initTabs() {
tabs = (TabHost) findViewById(R.id.tabhost);
tabs.setup();
tabs.setBackgroundResource(R.drawable.bg_midgray);
TabHost.TabSpec spec;
// Location info
txtTabInfo = new TextView(this);
txtTabInfo.setText("INFO");
txtTabInfo.setPadding(0, 5, 0, 0);
txtTabInfo.setTextSize(11);
txtTabInfo.setBackgroundResource(R.drawable.bg_tab_left_active_right_inactive);
txtTabInfo.setTextColor(Color.DKGRAY);
txtTabInfo.setGravity(Gravity.CENTER_HORIZONTAL);
txtTabInfo.setHeight(39);
spec = tabs.newTabSpec("tabInfo");
spec.setContent(R.id.tabInfo);
spec.setIndicator(txtTabInfo);
tabs.addTab(spec);
...
}
spec. setIndicator (txtTabInfo); Điều này không được phép. Trình biên dịch cho lỗi tại dòng này. – sachin
Bạn cũng có thể làm điều đó thông qua XML và tạo/xác định chủ đề toàn cầu cho tất cả các tab trong ứng dụng của bạn. Có thông tin thêm về việc tạo ra các chủ đề phụ tùng ở đây: http://developer.android.com/guide/topics/ui/themes.html
tôi sử dụng định nghĩa sau đây của drawable của tôi, tab_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_selected="true" android:drawable="@drawable/tab_bg_selected" />
<item android:drawable="@drawable/tab_bg_normal" />
</selector>
Sau đó lặp qua các tab để cài đặt chúng.
TabWidget tabWidget = tabHost.getTabWidget();
for(int i=0; i<tabWidget.getChildCount(); i++)
tabWidget.getChildAt(i).setBackgroundResource(R.drawable.tab_background);
Giải pháp thanh lịch nhất mà tôi đã thấy cho đến bây giờ là: http://stackoverflow.com/questions/3078081/setting-a-global-style-for-views-in-android/3166865#3166865 –