ABS + ViewPager + zarządzanie zmianą orientacji

Obecnie próbuję zaimplementować aplikację z kilkomaKarty i muszę użyć także ViewPager.

Trudność, z którą mam do czynienia, polega na zarządzaniu zmianami orientacji ekranu ... Pozwólcie, że wyjaśnię bardziej szczegółowo ..

W portrecie znajduje się odtwarzacz na pełnym ekranie (1fragment), w lanscape chcę, aby zmienił się na listę po lewej, a gracz po prawej (2fragment)

Na razie viewPager mnie blokuje, przeszukałem internet i nie znalazłem nic na ten temat z abs + viewpager.

Myślę, że problem może być związany z adapterem. Na razie przyjmuje zmienną „Class” i pobiera z niej fragment.

Masz pomysł ?

Wszelkie sugestie są mile widziane! Dzięki !

Oto kod mojego FragmentPagerAdapter:

public static class TabsAdapter extends FragmentPagerAdapter implements ActionBar.TabListener, ViewPager.OnPageChangeListener {
        private final Context               _context;
        private final ActionBar             _actionBar;
        private final ViewPager             _viewpager;
        private final ArrayList<TabInfo>    _tabs   = new ArrayList<TabInfo>();

        static final class TabInfo {
            private final Class<?>  clss;
            private final Bundle    args;

            TabInfo(Class<?> _class, Bundle _args) {
                clss = _class;
                args = _args;
            }
        }

        public TabsAdapter(SherlockFragmentActivity activity, ViewPager pager) {
            super(activity.getSupportFragmentManager());
            _context = activity;
            _actionBar = activity.getSupportActionBar();
            _viewpager = pager;
            _viewpager.setAdapter(this);
            _viewpager.setOnPageChangeListener(this);
        }

        public void addTab(ActionBar.Tab tab, Class<?> clss, Bundle args) {
            TabInfo info = new TabInfo(clss, args);
            tab.setTag(info);
            tab.setTabListener(this);
            _tabs.add(info);
            _actionBar.addTab(tab);
            notifyDataSetChanged();
        }

        @Override
        public int getCount() {

            return _tabs.size();
        }

        @Override
        public Fragment getItem(int position) {
            TabInfo info = _tabs.get(position);
            return Fragment.instantiate(_context, info.clss.getName(), info.args);
        }

        @Override
        public void onPageSelected(int position) {
            _actionBar.setSelectedNavigationItem(position);
        }

        @Override
        public void onTabSelected(Tab tab, FragmentTransaction ft) {
            Object tag = tab.getTag();
            for (int i = 0; i < _tabs.size(); i++) {
                if (_tabs.get(i) == tag) {
                    _viewpager.setCurrentItem(i);
                }
            }
        }
    }

Tutaj jestSherlockFragmentActivity :

public class MainActivity extends SherlockFragmentActivity {
    private ViewPager           _viewPager;
    private PagerTitleStrip     _pagerStrip;
    private ActionBar           _actionBar;
    private TabsAdapter         _tabsAdapter;
    private Tab                 _radioTab;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        _viewPager = (ViewPager) findViewById(R.id.viewpager);
        _actionBar = getSupportActionBar();
        _tabsAdapter = new TabsAdapter(this, _viewPager);
        _radioTab = _actionBar.newTab().setCustomView(getTabIndicator(getString(R.string.radio_tab), android.R.drawable.ic_menu_manage));
        _tabsAdapter.addTab(_radioTab, FragmentRadio.class, null);

    }

    private View getTabIndicator(String text, int drawable) {

        View indicator = _inflater.inflate(R.layout.tabs, null);
        ((TextView) indicator.findViewById(R.id.tab_title)).setText(text);
        ((ImageView) indicator.findViewById(R.id.tab_icon)).setImageResource(drawable);
        return indicator;
    }
}

KlasaFragmentRadio :

public class FragmentRadio extends SherlockFragment {
    private View    _view;

    public FragmentRadio() {

        super();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        _view = inflater.inflate(R.layout.fragment_radio, container, false);
        return _view;
    }
}

Układfragment_radio :

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/fragment_radio_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <fragment
        android:id="@+id/fragment_radio"
        android:name="com.egdigital.testing.ContentRadioFragment"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>

KlasaContentRadioFragment :

public class ContentRadioFragment extends SherlockFragment {
    // log
    private static final String TAG = ContentRadioFragment.class.getSimpleName();
    // ihm
    private View                _view;
    private Button              _btnPlay;
    private Button              _btnPause;
    private ImageView           _imageViewCover;
    private ScrollingTextView   _textViewName;
    private TextView            _textViewState;
    private SeekBar             _seekBar;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        _view = inflater.inflate(R.layout.content_radio, container, false);
        _btnPlay = (Button) _view.findViewById(R.id.btn_play);
        _btnPause = (Button) _view.findViewById(R.id.btn_pause);
        _textViewName = (ScrollingTextView) _view.findViewById(R.id.tv_title);
        _textViewState = (TextView) _view.findViewById(R.id.tv_buffering);
        _seekBar = (SeekBar) _view.findViewById(R.id.seekBar1);
        return _view;
    }
}

A układ content_radio to anormalny układ

questionAnswers(0)

yourAnswerToTheQuestion