Viewpager Inside Viewpager

While using View Pager inside View Pager , not showing item of child view pager

 getChildFragmentManager()

Returns a private FragmentManager for placing and managing Fragments inside of a Fragment.

 getSupportFragmentManager()

Returns the FragmentManager for interacting with fragments associated with this fragment’s activity.

In your method related to child view pager

ViewpageAdapterFrg FirstAdapter=new ViewpageAdapterFrg(getChildFragmentManager());

FirstAdapter.fragmentAdd(new NormalRpmFragment(),"Normal");
FirstAdapter.fragmentAdd(new AwesomeRpmFragment(),"Awesome");
FirstAdapter.fragmentAdd(new PointerRpmFragment(),"Pointer");
FirstAdapter.fragmentAdd(new ProgressRpmFragment(),"Pointer");
FirstAdapter.fragmentAdd(new DeluxeRpmFragment(),"Deluxe");

viewPager.setAdapter(FirstAdapter);

Log.d("speedViewFragemnt",String.valueOf(viewPager.getCurrentItem()));
tabLayout.setupWithViewPager(viewPager);

Fragment inside ViewPager inside ViewGroup

Ok, after a night of research and reading the API I figured it out. I don't understand everything but it seems the v13 and v4 library have a conflict.

To override it, firstly :

  • Make sure that you called getChildFragmentManager() instead of getFragmentManager()
  • Create a different ID for all the different viewpageryou have. Those IDs must have at least 4 digits. Of course, it is better to have those in R.String
  • Set your ID in every viewpager by calling setID()
  • If it doesn't work, please clean and rebuild your project.

And finally, the reward :

Sample Image

I hope that it will help.

TabLayout inside ViewPager prohibits swiping

TabLayout is a subclass of HorizontalScrollView, which in turn is a subclass of ScrollView. If you disable horizontal scrolling, then the MotionEvent won't be swallowed by TabLayout, instead would be passed higher up the view hierarchy - to ViewPager.

You can subclass TabLayout performing following changes:



public class MyTabLayout extends TabLayout {

public MyTabLayout(Context context) {
super(context);
}

public MyTabLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}

public MyTabLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
return false;
default:
return super.onTouchEvent(ev);
}
}

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return false;
}

}

Output:

Sample Image

How to use viewpager inside nestedScrollView with a view top of viewpager

So I have finally resolved this problem by just creating Custom Viewpager as mentioned here: Custom ViewPager that calculate ViewPager height and setNestedScrollingEnable(false) to RecyclerView inside Viewpager. By setting NestedScrollingEnalbe = false Recyclerview does set parent NestedScrollView's scroll. So Parent NestedScrollView works with inside Viewpager.



Related Topics



Leave a reply



Submit