разделители между TabWidgets - PullRequest
       23

разделители между TabWidgets

4 голосов
/ 14 сентября 2010

Работает ли атрибут android: divider в TabWidget? Я попробовал учебник Tab Layout от android только для проверки (http://developer.android.com/resources/tutorials/views/hello-tabwidget.html) и установил разделитель android: на какое-то изображение (сейчас я использовал вертикальную полосу прокрутки android в качестве рисованного элемента, чтобы действительно подчеркнуть, если его поднимают (скопировал из каркасов), но когда я запустил его на эмуляторе, он, кажется, не работает. Согласно документам, TabWidget, кажется, поддерживает этот атрибут: «Drawable используется для рисования разделителя между вкладками».

Кто-нибудь может помочь? В качестве отрисовываемого изображения моего разделителя я использую рисованный шаблон с девятью заплатами.

MB

Ответы [ 5 ]

19 голосов
/ 31 октября 2010

Похоже, атрибут divider больше не доступен для TabWidget. Один из способов добавить пользовательский разделитель - установить его программно:

mTabHost.getTabWidget().setDividerDrawable(R.drawable.divider_vertical_dark);

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

7 голосов
/ 25 апреля 2013

У меня была эта проблема, и я решил ее с помощью следующего кода

tabHost1.getTabWidget().setDividerDrawable(R.drawable.example1);
if(Build.VERSION.SDK_INT >= 11)
    tabHost1.getTabWidget().setShowDividers(TabWidget.SHOW_DIVIDER_MIDDLE);

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

7 голосов
/ 31 января 2013

У меня была проблема в ICS, где был виден разделитель.Ни одно из решений не сработало, за исключением следующего.

<TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="60dp"
            android:gravity="bottom"
            android:layout_alignParentBottom="true"
            android:fadingEdge="none"
            android:showDividers="none" >
        </TabWidget>

Ключевая строка была android:showDividers="none"

1 голос
/ 29 мая 2012

У меня такая же проблема.Я вижу только проблему в Ice Cream Sandwich (ICS / 4.0.x).В Android 1.6 - 2.3.4 проблем нет, разделители правильно отображаются при настройке рисованного в коде или в макете xml.

Я пытался исправить практически все, что только смог, ноничего не работает, включая ответ Джоша выше :( хотя я заметил, что при установке любого рисованного элемента в качестве разделителя, он будет занимать пространство между вкладками, как если бы там был нарисованный элемент, но его просто не видно.Надеюсь, что это дает кому-то еще подсказку о том, что может происходить ..?

0 голосов
/ 09 сентября 2014

Я удалил разделительную линию из табуляции с использованием ниже магических линий.

  mTabHost.getTabWidget().setDividerDrawable(null);

ИЛИ

  mTabHost.getTabWidget().setDividerDrawable(R.Color.transperant);
...