0

アプリケーションを横向きモードと縦向きモードの両方で実行したいと考えています。リストをスワイプするたびに各フラグメントを使用ViewPagerしてFragmentPagerAdapter切り離しますが、ユーザーがスワイプして戻ったときに簡単に再接続できるように、それらをメモリに保持します。protrait モードで正常に動作します。しかし、横向きモードにすると、画面を入れ替えると最初のフラグメントビューのみが表示されます。解決策を教えてください。

フラグメントアダプター:

public class FragmentAdapter extends FragmentStatePagerAdapter
{
    private final int three = 3 ;

    public FragmentAdapter(FragmentManager fm)
    {       
        super(fm);
        Log.e("adapter", "const");
    }

    @Override
    public Fragment getItem(int position)
    {
        Log.e("adapter", "getitem");
        return ViewFragment.newInstance(position);  
    }

    @Override
    public int getCount()
    {
        Log.v("adpt", "getcount");
        return three;
    }
}  

ビューフラグメント:

public final class ViewFragment extends Fragment
{
    private int position;
    public static ViewFragment newInstance(int position)
    {
        ViewFragment viewFragment = new ViewFragment();
        viewFragment.position = position;
        Log.e("newinstance", "pos="+position);

        return viewFragment;
    }

     @Override  
     public void onCreate(Bundle savedInstanceState)
     {  
         super.onCreate(savedInstanceState);  
     } 

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) 
    {
        Log.d("oncreateview", ":)");

        View view = null ;

        if (position == 0)
        {
            Log.e("oncreateview", "0/"+position);
            View v = inflater.inflate(R.layout.first_view_fragment, null) ;
            view = v.findViewById(R.id.firstViewFragmentLayout);

        }
        else if (position == 1 )
        {
            Log.e("oncreateview", "1/"+position);
            View v = inflater.inflate(R.layout.second_view_fragment, null) ;
            view = v.findViewById(R.id.secondViewFragmentLayout);

        }
        else if (position == 2)
        {
            Log.e("oncreateviewr", "2/"+position);
            View v = inflater.inflate(R.layout.third_view_fragment, null) ;
            view = v.findViewById(R.id.thirdViewFragmentLayout);
        }

        return view;
    }
}
4

0 に答える 0