Автоматическая прокрутка на вкладке с использованием горизонтальной прокрутки - программно - PullRequest
4 голосов
/ 25 октября 2011

Я разрабатываю пример приложения с TabHost, которое содержит HorizontalScrollView. Вот моя проблема:

  • У меня более 10 вкладок, когда я нажимаю на любую из вкладок, она должна установить гравитацию как центр? Как я могу решить эту проблему.

Заранее спасибо !!!

Ответы [ 2 ]

5 голосов
/ 25 октября 2011

Это будет связано с некоторыми расчетами.

В принципе вам нужно будет прокрутить до позиции, чтобы центрировать элемент.

int scrollX = (button.getLeft() - (screenWidth/2))+(button.getWidth()/2);
hScrollView.scrollTo(scrollX,0);

Где

button -> It is the button you are trying to center.

screenWidth -> Width of the screen.
int screenWidth = getWindowManager().getDefaultDisplay().getWidth();

hScrollView -> It is the horizontal scrollview.

Но даже при использовании этого метода вы не сможете центрировать конечные элементы, поскольку просмотры прокрутки не будут прокручиваться за его пределы.

0 голосов
/ 10 декабря 2012
public void onTabChanged(String tabId) {
    for (int i = 0; i < tablist.length; i++) {
        if (tabId.contentEquals(tablist[i])) {
            HorizontalScrollView scroll = (HorizontalScrollView)findViewById(R.id.horScrollView);
            scroll.smoothScrollTo(((int)(getResources().getDimensionPixelSize(R.dimen.tab_width) * (i))), 0);
        } 
    }

Я использовал: реализует OnTabChangeListener.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...