#android
#Android
Вопрос:
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i ) {
Log.v("","tabhost...");
Log.v("","tabHost.getTabWidget().getChildAt(i).getLayoutParams() " tabHost.getTabWidget().getChildAt(i));
RelativeLayout relativeLayout = (RelativeLayout)tabHost.getTabWidget().getChildAt(i);
relativeLayout.getChildCount();
Log.v("","count " relativeLayout.getChildCount() " relativeLayout.getChildAt(i) " relativeLayout.getChildAt(i));
TextView tabhostText = (TextView) relativeLayout.getChildAt(1);
tabhostText.setTextSize(20.0f);
tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = 30;
}
В приведенном выше коде все работает нормально, т. Е. я могу видеть текст на вкладке. Но я не могу видеть текст на устройстве. видна только некоторая часть текста. пожалуйста, не мог бы кто-нибудь найти какое-нибудь решение.
Заранее спасибо..
Ответ №1:
Я знаю, что вашему вопросу уже 10 месяцев, но причина, по которой видна только часть текста, заключается в том, что вы установили высоту всего 30. По умолчанию на вашем телефоне, вероятно, 96 пикселей (или, может быть, 64, если у вашего телефона более низкое разрешение).
Если вы хотите сделать свой код более универсальным, вы можете сначала получить высоту вкладок, а затем установить высоту каждой вкладки в процентах от исходной высоты. В приведенном ниже примере я установил высоту вкладок равной 80% от исходной высоты.:
double height = tabHost.getTabWidget().getChildAt(0).getLayoutParams().height;
for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i ) {
RelativeLayout relativeLayout = (RelativeLayout)tabHost.getTabWidget().getChildAt(i);
TextView tabhostText = (TextView) relativeLayout.getChildAt(1);
tabhostText.setTextSize(20.0f);
tabHost.getTabWidget().getChildAt(i).getLayoutParams().height = (int) (0.8 * height);
}
p.s. Возможно, в следующий раз вы захотите сформулировать свой вопрос лучше. Я думаю, что понимаю, о чем вы спрашиваете, но только потому, что я работаю над тем же самым. Попробуйте сформулировать свой вопрос в обычной форме вопроса (например, заканчивающийся вопросительным знаком).
Ответ №2:
Я нашел решение.
View v = getLayoutInflater().inflate(R.layout.tab_header, null);
tabSpec.setIndicator(v);
Просто используйте пользовательский макет для вкладок.
Комментарии:
1. использование пользовательского макета — отличное решение, когда вам нужен высокий уровень настройки через tabhost. Я успешно использовал это для создания пользовательского макета для каждой вкладки. Затем вы можете получить доступ к дочерним элементам управления с помощью v.findViewById()