【问题标题】:Android scrolling on a HorizontalScrollViewAndroid 在 Horizo​​ntalScrollView 上滚动
【发布时间】:2011-12-06 17:01:57
【问题描述】:

我有一个 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 有人能帮我吗? 提前致谢!

【问题讨论】:

    标签: android scroll horizontalscrollview


    【解决方案1】:

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

    【讨论】:

    • 不起作用。我调用在 OnResume 上的滚动中构造 textview 的函数,并在 OnPostResume 中调用必须滚动到 textview 的方法。不工作。同样在 OnPostResume 我明确调用 this.horizo​​ntalScrollView.scrollBy(300, 0);不要动。
    • 是什么让你认为 onResume 是在布局之后?尝试添加一个按钮并将该代码放入单击侦听器中,看看会发生什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    相关资源
    最近更新 更多