@Config(shadows = ShadowRecyclerView.class) @Test public void testScrollItemToTop() { activity.onItemSelected(new TestHnItem(1L) { @NonNull @Override public String getType() { return STORY_TYPE; } }); TabLayout tabLayout = activity.findViewById(R.id.tab_layout); assertThat(tabLayout.getTabCount()).isEqualTo(2); tabLayout.getTabAt(0).select(); ViewPager viewPager = activity.findViewById(R.id.content); viewPager.getAdapter().instantiateItem(viewPager, 0); viewPager.getAdapter().finishUpdate(viewPager); RecyclerView itemRecyclerView = viewPager.findViewById(R.id.recycler_view); itemRecyclerView.smoothScrollToPosition(1); assertThat(customShadowOf(itemRecyclerView).getScrollPosition()).isEqualTo(1); tabLayout.getTabAt(1).select(); tabLayout.getTabAt(0).select(); tabLayout.getTabAt(0).select(); assertThat(customShadowOf(itemRecyclerView).getScrollPosition()).isEqualTo(0); }
@Override public void onPageSelected(int position) { if (position == 0) { mTerminalView.requestFocus(); } else { final EditText editText = viewPager.findViewById(R.id.text_input); if (editText != null) editText.requestFocus(); } } });
@Override public void onPageScrollStateChanged(int state) { final int layerType = state == ViewPager.SCROLL_STATE_IDLE ? View.LAYER_TYPE_NONE : View.LAYER_TYPE_HARDWARE; final int animatedViewsCount = presenter.getAnimatedViews().size(); for (int id : presenter.getAnimatedViews()) { View child = viewPager.findViewById(id); if (child != null) { child.setLayerType(layerType, null); } } if (animatedViewsCount > 0) { // Set layer type back to none when there is ViewPager animations from Sparkle Motion. final int viewPagerChildCount = viewPager.getChildCount(); for (int i = 0; i < viewPagerChildCount; i++) { View child = viewPager.getChildAt(i); child.setLayerType(View.LAYER_TYPE_NONE, null); } } } });
mTitleStrip = (PagerTitleStrip) mViewPager.findViewById(R.id.pager_title_strip); mArrayPager = new ArrayPagerAdapter(getSupportFragmentManager()); mViewPager.setAdapter(mArrayPager);