Android: таблица красивее?

#android

#Android

Вопрос:

Я хочу использовать текст только на вкладках моего табличного описания. К сожалению, по умолчанию вкладки очень большие, а текст очень маленький. Я не вижу способа настроить размер текста или высоту вкладок без использования TabSpec.setIndicator(View) ; что было бы очень нежелательно, потому что тогда мне пришлось бы определять конкретный макет, селектор, выбранное изображение, невыбранное изображение и т.д… таким образом, мои вкладки не будут соответствовать внешнему виду каждого устройства. Есть ли удобный способ настроить внешний вид вкладки?

 mTabHost.addTab(mTabHost.newTabSpec("system").setIndicator("My first tab").setContent(R.id.fileBrowserTabHostSystemList));
mTabHost.addTab(mTabHost.newTabSpec("recent").setIndicator("My Second tab").setContent(R.id.fileBrowserTabHostRecentList));
  

введите описание изображения здесь

Комментарии:

1. Это лучший пример, с которым я сталкивался: joshclemm.com/blog/?p=136

2. Я действительно предпочитаю этого не делать, потому что я хотел бы, чтобы мои вкладки выглядели локально.

Ответ №1:

Мне удалось приятным образом изменить высоту табуляции:

     final int tabChildrenCount = tabWidget.getChildCount();
    View currentTab;
    for (int i = 0; i < tabChildrenCount; i  ) {
        currentTab= tabWidget.getChildAt(i);
        currentTab.getLayoutParams().height = 32;
    }
    tabWidget.getLayoutParams().height = LayoutParams.WRAP_CONTENT;
    tabWidget.requestLayout(); 
  

Вкладки с меньшей высотой

Я также попытался получить высоту заголовка на вкладке и установить для нее высоту вкладки:

 currentTab.findViewById(android.R.id.title).getHeight();
// also tried with getMeasuredHeight()
  

но она возвращает 0, поскольку была в методе onCreate(), и представление, похоже, не знает своего размера в тот момент. Параметры компоновки.WRAP_CONTENT не подходит для высоты табуляции, потому что он действовал как FILL_PARENT .

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

Тем не менее, безопаснее всего вручную выполнить макет (как уже было опубликованоhttp://joshclemm.com/blog/?p=136). Получить ресурсы из репозитория Android и настроить 🙂

Комментарии:

1. Я думаю, что нет хорошего способа сделать это. Спасибо за предложение.

2. ab11, проверьте новое решение.