Как изменить цвет и / или рисование разделителя TabWidget в Android?
Я использую TabLayout, и у меня есть пользовательские изображения для вкладок, которые я использую, но за всю свою жизнь я не могу понять, как изменить цвет или даже изображение разделителя между вкладками и содержимым вкладки. Я попытался использовать setDividerDrawable (), но он вылетает, когда я вызываю его перед установкой содержимого вкладки и просто ничего не делает, когда я вызываю его после. Если бы я мог просто сделать его черным, этого было бы достаточно, но до сих пор ничего не сработало. Спасибо за любые указания.
2 ответов:
Ты должен это сделать.: tabHost.getTabWidget().setDividerDrawable (Р.tab_divider);
Где R. рисуемый.tab_divider-это образ в каталоге ресурсов.
Но ключ в том, что вы должны сделать это, прежде чем вы добавите какие-либо вкладки к хосту вкладок.
Мой код инициализации вкладки выглядит следующим образом:
private void initializeTabs(int curTab) { this.tabHost = getTabHost(); tabHost.clearAllTabs(); TabSpec ts1, ts2, ts3, ts4, ts5; // tab separator tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_divider); ts1 = this.setupTab(new TextView(this), tabHost, R.drawable.browse_tab_normal, mResources.getString(R.string.Browse)); ts2 = this.setupTab(new TextView(this), tabHost, R.drawable.search_tab_normal, mResources.getString(R.string.Search)); ts3 = this.setupTab(new TextView(this), tabHost, R.drawable.postad_tab_normal, mResources.getString(R.string.Post)); ts4 = this.setupTab(new TextView(this), tabHost, R.drawable.watchlist_tab_normal, mResources.getString(R.string.WatchList)); ts5 = this.setupTab(new TextView(this), tabHost, R.drawable.managead_tab_normal, mResources.getString(R.string.Login)); // intents ts1.setContent(new Intent().setClass(this, BrowseTabActivity.class)); ts2.setContent(new Intent().setClass(this, SearchTabActivity.class)); ts3.setContent(new Intent().setClass(this, PostAdTabActivity.class)); ts4.setContent(new Intent().setClass(this, WatchlistTabActivity.class)); ts5.setContent(new Intent().setClass(this, LoginTabActivity.class)); tabHost.addTab(ts1); tabHost.addTab(ts2); tabHost.addTab(ts3); tabHost.addTab(ts4); tabHost.addTab(ts5);...
Лучший способ определить разделитель-сделать if из вашей XML-разметки:
<TabWidget android:layout_width="match_parent" android:showDividers="middle" android:divider="@drawable/design_tab_divider"> </TabWidget>Таким образом, вы можете определить drawable только из разметки. Помните, что вы должны использовать
android:dividerвместе сandroid:showDividers="middle"для размещения разделителей между вкладками. Подробнее читайте спецификацию и обратите внимание на свойства, унаследованные от LinearLayout - docs в google
Comments