Theme.Holo не отображает значки виджета Tabhost

Я использую Theme.Holo в качестве родительской темы для приложения. Однако на вкладках в узле вкладок не отображаются значки. Чтобы отображать значки, я могу изменить тему на Theme.Light или просто Theme, но тогда у меня не будет панели действий, которая поставляется с Theme.Holo.

Может кто-нибудь сказать мне, как я могу отображать значки на хосте вкладок при использовании Theme.Holo? Я имею в виду значки панели вкладок в стиле iOS.


person Sorin Cioban    schedule 30.08.2012    source источник
comment
Можете ли вы предоставить код создания индикаторов вкладок? На какой SDK вы ориентируетесь?   -  person Jin35    schedule 10.10.2012
comment
Посетите stackoverflow.com/questions/11379916/ проверьте это!   -  person Anuj Sharma    schedule 10.10.2012


Ответы (2)


Кажется, что вкладки со значками больше не используются.

Вы можете использовать отличную библиотеку, которую я использую для вкладок (ViewPagerExtentions), которая позволяет вам перемещаться между вкладками и установите значок для каждой вкладки, как показано ниже: введите здесь описание изображения

Вам нужно скачать библиотеку. В примере проекта вам нужен макет: activity_fixed_icon_tabs.xml. Это довольно просто, но если вам нужна помощь, вы можете обратиться ко мне.

Если вы не хотите пачкать руки, есть решение вашей проблемы, предоставленное Здесь. В основном вы можете перейти к ImageView внутри вкладки и вызвать img.setVisibillity(View.VISIBLE).

Затем он говорит, что в Android ‹ 3.0 это портит вкладку, но он предлагает решение и для этого. Вы можете проверить, какая версия Android работает на устройстве, а затем сделать это соответствующим образом. Но, насколько я понимаю, для вас это не будет проблемой, потому что вы хотите использовать ActionBar всегда.

Я рекомендую вам использовать библиотеку ViewPagerExtentions, потому что она также добавляет очень интересную функциональность смахивания. Но даже если вы не хотите использовать это, у вас есть решение.

person RE6    schedule 10.10.2012
comment
Интересно. Тем не менее, я был бы очень признателен за способ сделать это с помощью встроенного хоста вкладок... +1, и я дам вам награду, если не появятся другие ответы. - person Richard J. Ross III; 10.10.2012
comment
Отличные библиотеки всегда приветствуются. @RichardJ.RossIII У меня есть приложение, которое использует TabHost и работает на всех версиях, насколько мне известно. Если никто не ответит, я подготовлю небольшой туториал. - person Sherif elKhatib; 10.10.2012
comment
@RichardJ.RossIII Я дал вам решение для использования с TabHost. Здесь сообщение снова: stackoverflow.com/questions/10747507/ Посмотрите на обновление в конце его сообщения - person RE6; 10.10.2012

Не знаю, решит ли это вашу проблему, но если вы удалите текст, значок будет отображаться.

Это код, который я использую:

TabHost tabHost = getTabHost();
Intent intent = new Intent().setClass(this, Overview.class);

spec = tabHost.newTabSpec("overview")
           .setIndicator(Build.VERSION.SDK_INT < 11 ? this.getString(R.string.descr) : "", res.getDrawable(R.drawable.tab_overview))
           .setContent(intent);
person Philipp E.    schedule 17.12.2012