4

TabHostを含むサンプルアプリケーションを開発していますHorizontalScrollView。これが私の問題です:

  • 10個を超えるタブがありますが、いずれかのタブをクリックすると、重力が中心に設定されますか?どうすればこの問題を克服できますか。

前もって感謝します!!!

4

2 に答える 2

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.

ただし、この方法を使用しても、scrollviewsはその境界を超えてスクロールしないため、終了要素を中央に配置することはできません。

于 2011-10-25T06:51:19.457 に答える
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を実装します。

于 2012-12-10T10:37:01.433 に答える