0

我有一个 Horizo​​ntalScrollView,里面有一个 LinearLayout。这个 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

问题可能是您试图在布局之前获取视图的左侧和右侧。您需要稍后在布局流程中移动此代码。如果没有更多关于何时要滚动的上下文,很难确切地说将它移动到哪里,但如果它是在创建之后立即进行的(并且我假设您正在 Activity 周围的某处填充 LinearLayout onCreate)那么您可能想要查看覆盖View.onSizeChanged然后做它。

于 2011-12-06T18:19:35.187 回答