Прокрутите узел прокрутки и переместите в центр, используя HorizontalScrollview

1

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

Это код, но он не имеет никакого эффекта. Пожалуйста, помогите..

    Calendar c = Calendar.getInstance(); 
    int day = c.get(Calendar.DAY_OF_WEEK);

    try{

    int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
    int scrollX = (th.getTabWidget().getChildAt(day-2).getLeft() - (screenWidth/2))
                   +(th.getTabWidget().getChildAt(day-2).getWidth()/2);
    hsv.scrollTo(scrollX,0);

    //hsv is horizontalScrollView from the xml file
    //th is the tabhost
    th.setCurrentTab(day-2);
    }catch(Exception e){
        th.setCurrentTab(2);
    }

Пожалуйста, скажите мне, что может произойти неправильно.

Теги:
tabs
scrollview
android-tabhost
tabwidget

1 ответ

2

Попробуй это. Оно работает

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
    Это не работает :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню