2016-11-19 99 views
0

我的项目中有一个ViewPager,其中包含一些从数据库加载的文章。如何重置ViewPager片段刷新后的垂直滚动?

根据每篇文章的长度,用户必须向下滚动ScrollView内部片段布局才能阅读该文章。

当用户滑动到下一个片段(文章),然后回到前一个片段(文章),它显示了文章在最后一个垂直滚动位置,但是当一个片断被刷出时,我需要将垂直滚动位置重置为顶部。

我试过OnPageChangeListener()方法来处理它,但是我失败了,因为例如onPageScrolled在用户开始刷新时重置滚动,而我需要它在(先前的)片段刷出之后发生。

我该怎么办?

+0

u需要重置的片段位置。尝试添加scrolltoPosition(1);在你的片段内。 –

+0

@Divyesh在哪个方法? 'onCreateView'? – Pourbahrami

+0

张贴您的购物代码。在你的'onTabSelected'方法中设置' –

回答

0

覆盖setUserVisibleHint方法在您的片段:

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
super.setUserVisibleHint(isVisibleToUser); 
    if (isVisibleToUser && isResumed()) { 
     scrollview.smoothScrollTo(0,0); 
    } 
} 
+0

如何定义'scrollview'? 'ScrollView scrollview =(ScrollView)findViewById(R.id.articleScrollView);'在方法内部不起作用! – Pourbahrami

+0

在onCreate方法中定义它,就像其他视图一样 –