Ограничение вкладки TabWidget - PullRequest
0 голосов
/ 28 апреля 2011

У меня есть приложение для Android, которое в настоящее время имеет 9 вкладок. При добавлении новой вкладки ширина всех вкладок уменьшается. Я чувствую, что добавление еще одной вкладки сделает вкладки слишком маленькими. Есть ли способ, чтобы стрелка вправо / влево появлялась сбоку от TabWidget, подобно элементам управления вкладки .NET, или было бы лучше обернуть TabWidget в HorizontalScrollView, как описано здесь? вкладка прокрутки

Ответы [ 2 ]

6 голосов
/ 18 мая 2011

Простое помещение TabWidget в HorizontalScrollView приведет к проблеме:
View в TabWidget не будет заполнять экран и иметь другую ширину.
Вы можете избежать этого, установив его minWidth иустановите андроид HorizontalScrollView: fillViewport в значение true.

<HorizontalScrollView ... android:fillViewport="true">  
    <TabWidget android:id="@android:id/tabs" ... />
</HorizontalScrollView>

и

int dips = 70; // The min width you want in DIP
int pixels = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, (float) dips, getResources().getDisplayMetrics());
    TabWidget widget = tabHost.getTabWidget();
    for (int i = 0; i < widget.getChildCount(); ++i) {
        View v = widget.getChildAt(i);
        v.setMinimumWidth(pixels);
    }
}

Так что вам не нужно создавать собственные View для TabSpec индикаторов.

4 голосов
/ 28 апреля 2011

Вы можете поместить свой TabWidget в HorizontalScrollView, чтобы вы могли прокручивать вкладки.

Например, см. это сообщение .

Если вам нужны кнопки на двух сторонах вкладок, вы можете обернуть их еще раз:
поместите HorizontalScrollView внутрь RelativeLayout и поместите Buttons слева и справа от него. В кнопках OnClickListener вы можете прокручивать TabWidget программно.

...