我的ViewPager片段中有一个scrollView。我想将初始scrollView位置设置为(0,100)。
我尝试在{{1}}中设置{{1}}。它没用。
然后我在Handler中尝试了同样的功能,但它只在(0,0)之后滚动到(0,100),导致scrollView中的小混蛋,这对用户体验不利。
有没有办法让scrollview直接滚动到(0,100)而不是(0,0)?或者scrollView中是否有任何方法可以检测初始滚动事件?
P.S:我看到问题here也与我的问题相同,但接受的答案对我不起作用。任何帮助将不胜感激。 感谢
答案 0 :(得分:0)
而不是scrollTo,您可以在滚动视图的内部布局的第一个子项上使用requestFocus。
示例:
<ScrollView>
<LinearLayout>
<TextView
android:focusable="true"
android:focusableInTouchMode="true"
android:tag="ScrollTopTag" />
//***rest of your layout***//
</LinearLayout>
</ScrollView>
在您想要滚动到滚动视图顶部的活动中添加以下行
View view = findViewByTag(“ScrollTopTag”); view.requestFocus();
答案 1 :(得分:0)
感觉就像你在适配器内部膨胀视图而不回收它们。这可以解释不稳定的加载时间。除此之外,从示例中,尝试进一步延迟它。在示例中它使用250毫秒,但是如果你的列表视图没有完成加载,那么它不会在任何地方滚动,因为它还没有填充。我会开始,但首先将持续时间增加到大约2000毫秒,看看它是否有效。如果可行的话,我会回到你的适配器类,确保每个视图都是循环使用而不是重新充气。