1

Я использую viewpager и SlidingTabLayout для реализации вкладок в своей деятельности. Активность имеет 5 фрагментов. То, что я пытаюсь достичь, - это как только пользователь начнет прокрутку для переключения вкладок, мне нужно сбросить scrollY нового фрагмента (который уже находится в памяти из-за кэширования viewpager, но становится только видимым) до определенного значения.android viewpager: сброс положения прокрутки смежного фрагмента

Я пробовал использовать Fragment.onResume, но он не работает. Используя ViewPager.OnPageChangeListener.onPageScrollStateChanged, я могу захватить, когда пользователь начинает прокручивать влево/вправо, но как мне получить доступ к новому фрагменту, который только становится видимым, поэтому я могу сбросить его положение прокрутки?

ответ

0

вы можете использовать ViewPager.PageTransformer принять грядущую страницу, то делать все, что вы хотите, как это:

@Override 
public void transformPage(View page, float position) { 
    page.setScrollY(100); 
    ... 
} 

this вопрос бы рассказать вам подробности.

+0

Я пробовал это, но он устанавливает прокрутку текущей вкладки (исходящей), а не новую. Я хочу сбросить прокрутку строки, которая только становится видимой. – nomongo

+0

вы не уделяете достаточного внимания методу «transformPage», он информирует обе текущую страницу и становится страницей, вам нужно только решить, с какой позицией вы хотите иметь дело, и которая должна игнорироваться. [здесь] (https://github.com/vince-styling/parallel-swipe-listview/blob/master/src/com/vincestyling/parallel_swipe_listview/MainActivity.java#LC79) является четким образцом. – VinceStyling

+0

Vince, я попытался использовать «if (position> 0 && position <= 1)», но он говорит только о том, является ли это левым или правым или правым налево, как я могу определить, является ли представление новым по сравнению с текущим один? Благодарю. – nomongo

Смежные вопросы