所以我在这里有这个布局:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrollView"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/instructions">
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Sample text 1"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Sample text 2"/>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Sample text 3"/>
</LinearLayout>
</ScrollView>
(为了简单起见,我刚刚编写了textView3,但是说更多并且scrollView是可滚动的)然后在这个scrollView外面有一个按钮。每次单击该按钮时,scrollView都会滚动并将视图居中到下一个textView。我怎样才能做到这一点?
我已尝试获取视图的高度,然后将其添加到scrollView.scrollTo(y)上使用,但检索高度给了我很多问题,我使用了ViewTreeObserver进程,但我无法&#39 ; t检索
内的高度.addOnGlobalLayoutListener(New ViewTreeObserver ...
并将其放在变量上。但我用这种方法失败了。我究竟做错了什么?或者有更简单的方法吗?
答案 0 :(得分:0)
您可以考虑使用RecyclerView
并将新项添加到列表中,然后调用scrollToPosition(position)
函数滚动到最新项。
不要忘记将paddingBottom
添加到RecyclerView
,以便能够将最后一个视图滚动到中心。 (screenHeight / 2
使用paddingBottom
)