Установка фона вкладки с возможностью рисования списка слоев, влияющего на макет

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

Предполагаемый результат
Что я получаю, используя список слоев для фона

Я просто использую это для настройки фона:

TabWidget tw = mTabHost.getTabWidget(); 
for (int i = 0; i < tw.getChildCount(); i++) { 
    View v = tw.getChildAt(i); 
    v.setBackgroundDrawable(getResources().getDrawable (R.drawable.tab_background)); 
}

Любые подсказки относительно того, почему это происходит, или предложения о том, что еще я могу сделать вместо этого?


person David Liu    schedule 30.11.2010    source источник


Ответы (1)


Кажется, что использование списка слоев в качестве фона сбрасывает все отступы в представлении до 0. Немного бессмысленно, учитывая, что концептуально рисуемый фон не должен влиять ни на что из этого, но что угодно, я полагаю. Сохранение предыдущих отступов и установка их обратно в то состояние, в котором они были раньше, устраняет проблему.

person David Liu    schedule 30.11.2010