2017-07-13 4 views
2

私は各ページに異なるフラグメントを表示するViewPagerを持っています。すべてのフラグメントには、ルートビューとしてNestedScrollViewがあります。だから、基本的にこの:ViewPager内に複数のNestedScrollViewsがスクロールしない

first_fragment_layout.xml:

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.v7.widget.RecyclerView 
     android:id="@+id/recycler_view" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:padding="4dp"/> 

</android.support.v4.widget.NestedScrollView> 

second_fragment_layout.xml:

<android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <!-- Various irrelevant views --> 

    </LinearLayout> 

</android.support.v4.widget.NestedScrollView> 

...など。

private class ViewPagerAdapter extends FragmentPagerAdapter 
{ 
    private final List<String> mFragmentNameList = new ArrayList<>(); 

    public ViewPagerAdapter(FragmentManager fm) 
    { 
     super(fm); 
    } 

    @Override 
    public Fragment getItem(int position) 
    { 
     return Fragment.instantiate(getContext(), mFragmentNameList.get(position)); 
    } 

    @Override 
    public int getCount() 
    { 
     return mFragmentNameList.size(); 
    } 

    void add(String fragmentName) 
    { 
     mFragmentNameList.add(fragmentName); 
    } 
} 

私の問題は、一般的に、現在のフラグメントではないNestedScrollViewが一度に断片の一つにスクロールするだけでできることである(そして、次のように

断片

は、私のFragmentPagerAdapterクラスでインスタンス化されていますページ)。一度にアクティブにできるのはNestedScrollViewだけです(最初に膨らませたもの)。私はこれを推測しました。なぜなら、スクロールできるフラグメントは常にスクロールできないフラグメントのすぐ横にあり、デフォルトでは2つのフラグメントがViewPagerのメモリに保持されています( ViewPager.setOffscreenPageLimit(int limit)はデフォルトで1)

答えて

0

20分休憩してすぐに解決しました。 ViewPagerには、xml android:nestedScrollingEnabled="true"またはViewCompat.setNestedScrollingEnabled(viewPager, true)(> = API 21のみ)を介してネストされたスクロールが有効になっている必要があります(> = API 21のみ)

+0

yeahhと同じ質問がたくさんあります。 –

+0

@UttamPanchasara私は検索して見つけられませんでした。入れ子になったスクロールについては十分ですが、ViewPager内ではありません。 –

+0

@Uttam:重複して投票することで、重複を提案できますか? – halfer

関連する問題