0

私はLinearLayoutを内部に持つHorizo​​ntalScrollViewを持っています。このLinearLayoutには、多くのTextViewが(動的に)入力されます。インデックスに応じて、Horizo​​ntalScrollViewを指定されたTextViewにスクロールしたい。これを試してみましたが、うまくいきません

while (!this.stopsCursor.isAfterLast()) {
        int index = this.stopsCursor.getInt(this.stopsCursor.getColumnIndex("index"));
        if (index == session.getServiceStopIndex()) {
            TextView view = (TextView) this.linearLayout.getChildAt(index);
            StyleHelper.setStopHighlight(view);
            Log.v("TEST", "Left : " + view.getLeft() + "  Right : " + view.getRight());
            int offsetX = ((view.getLeft() + view.getRight()) / 2);
            this.horizontalScrollView.scrollTo(offsetX, 0);

        }
        this.stopsCursor.moveToNext();
    }

私のロガーは私に左:0右:0誰かが私を助けることができますか?前もって感謝します!

4

1 に答える 1

0

問題は、レイアウトの前にビューの左右を取得しようとしていることである可能性があります。このコードは、レイアウトフローの後半で移動する必要があります。いつスクロールするかについて、コンテキストなしでどこに移動するかを正確に言うのは難しいですが、作成直後の場合(そして、アクティビティの周りのどこかにLinearLayoutを設定していると仮定しますonCreate)、オーバーライドを検討することをお勧めしますView.onSizeChangedその頃それをやっています。

于 2011-12-06T18:19:35.187 に答える