1

actionbarsherlock を使用するアプリがあります。これを使用します

android:configChanges="orientation"

マニフェスト ファイルで、ローテーション時にタブ フラグメントの再作成を停止する

ローテーションすると、フラグメントが再作成されずに正常に動作しますが、タブが詰まり、元の向きに戻るまで別のタブを選択できません。

主な活動はこちら

public class class_main extends SherlockFragmentActivity implements ActionBar.TabListener{

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_class_main);

    getSupportActionBar()
    .setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);


    ActionBar.Tab newTab0 = getSupportActionBar().newTab();

    newTab0.setText("main");
    newTab0.setTabListener(this);

    ActionBar.Tab newTab1 = getSupportActionBar().newTab();

    newTab1.setText("News");
    newTab1.setTabListener(this);

    ActionBar.Tab newTab2 = getSupportActionBar().newTab();

    newTab2.setText("Calendar");
    newTab2.setTabListener(this);




    getSupportActionBar().addTab(newTab0);

    getSupportActionBar().addTab(newTab1);

    getSupportActionBar().addTab(newTab2);



    if (savedInstanceState != null) {
        getSupportActionBar().setSelectedNavigationItem(savedInstanceState.getInt("tab", 0));
    }

}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.activity_class_main, menu);
    return super.onCreateOptionsMenu(menu);
}



public void onTabSelected(Tab tab, FragmentTransaction ft) {
    {
        if(tab.getPosition()==0)
        {
        mainFragment frag = new mainFragment();
        ft.replace(android.R.id.content, frag);
        }
        else if(tab.getPosition()==1)
        {
        newsFragment frag = new newsFragment();
        ft.replace(android.R.id.content, frag);
        }
        else if(tab.getPosition()==2)
        {
        calendarFragment frag = new calendarFragment();
        ft.replace(android.R.id.content, frag);
        }


}

public void onTabUnselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}


public void onTabReselected(Tab tab, FragmentTransaction ft) {
    // TODO Auto-generated method stub

}

protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putInt("tab", getSupportActionBar().getSelectedNavigationIndex());
}

}
}
4

0 に答える 0