12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.reactnativenavigation.screens;
-
- import android.support.v4.view.PagerAdapter;
- import android.view.View;
- import android.view.ViewGroup;
-
- import com.facebook.react.bridge.Arguments;
- import com.facebook.react.bridge.WritableMap;
- import com.reactnativenavigation.NavigationApplication;
- import com.reactnativenavigation.params.TopTabParams;
- import com.reactnativenavigation.views.ContentView;
-
- import java.util.List;
-
- public class ContentViewPagerAdapter extends PagerAdapter {
-
- private List<ContentView> contentViews;
- private List<TopTabParams> topTabParams;
- private int currentPosition = 0;
-
- public ContentViewPagerAdapter(List<ContentView> contentViews, List<TopTabParams> topTabParams) {
- this.contentViews = contentViews;
- this.topTabParams = topTabParams;
- }
-
- @Override
- public Object instantiateItem(ViewGroup container, int position) {
- return contentViews.get(position);
- }
-
- @Override
- public void setPrimaryItem(ViewGroup container, int position, Object object) {
- super.setPrimaryItem(container, position, object);
- if (position != currentPosition) {
- currentPosition = position;
- sendPageChangeEvent();
- }
- }
-
- private void sendPageChangeEvent() {
- WritableMap data = Arguments.createMap();
- String navigatorEventId = contentViews.get(currentPosition).getNavigatorEventId();
- NavigationApplication.instance.sendNavigatorEvent("tabSelected", navigatorEventId, data);
- }
-
- @Override
- public int getCount() {
- return contentViews.size();
- }
-
- @Override
- public boolean isViewFromObject(View view, Object object) {
- return view == object;
- }
-
- @Override
- public CharSequence getPageTitle(int position) {
- return topTabParams.get(position).title;
- }
- }
|