选项卡主机使用水平scrollview-自动滚动 - 以编程方式

时间:2011-10-25 05:46:16

标签: android android-tabhost horizontalscrollview

我正在使用TabHost开发一个包含HorizontalScrollView的示例应用程序。这是我的问题:

  • 我有超过10个标签,当我点击任何标签时,它应该将重力设置为中心?我怎么能解决这个问题。

提前致谢!!!

2 个答案:

答案 0 :(得分:5)

这将涉及一些计算。

实际上,你需要滚动到一个元素居中的位置。

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.

但即使使用此方法,您也无法将结束元素居中,因为滚动视图不会滚动超出其范围。

答案 1 :(得分:0)

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。