Как установить выбранную вкладку должно быть посередине - PullRequest
7 голосов
/ 15 декабря 2011

Я новичок в Android, и в моем проекте у меня есть требование

т.е. у меня есть шесть вкладок, но я показываю только три вкладки на экране, а для остальных вкладок я использую ScrollView. Здесь выбранный элемент вкладки должен быть посередине, сначала, когда я вхожу в экран, я показываю, что средний элемент активен (т.е. выбран ).

Это хорошо, но как я могу установить этот средний элемент как средний, когда прокручиваю оставшиеся вкладки?

Кто-нибудь может дать предложение для получения решения.

Ответы [ 2 ]

7 голосов
/ 12 августа 2012

Проверьте это out:)

public void centerTabItem(int position) {
    tabHost.setCurrentTab(position);
    final TabWidget tabWidget = tabHost.getTabWidget();
    final int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
    final int leftX = tabWidget.getChildAt(position).getLeft();
    int newX = 0;

    newX = leftX + (tabWidget.getChildAt(position).getWidth() / 2) - (screenWidth / 2);
    if (newX < 0) {
        newX = 0;
    }
    horizontalScrollView.scrollTo(newX, 0);
}
0 голосов
/ 20 декабря 2011

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

...