FragmentStatePagedAdapterでタブを使用しています。以下のコードはonOptionsItemSelected(MenuItem item)
メソッドからのものです:
case R.id.menu_help:
System.out.println("Pressin' da help button!");
FragmentManager mananger = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction trans = mananger.beginTransaction();
trans.replace(android.R.id.content, new HelpFragment());
trans.addToBackStack(null);
trans.commit();
break;
android.R.id.content
ただし、アクションバーの下のビューのみを置き換えます(そしてタブフラグメントの上にオーバーレイします)。そのための新しいアクティビティを作成せずに、画面全体をフラグメントに置き換える簡単な方法はありますか(そのための他のシステムリソースがあるべきではありませんか?)?それとも、新しい活動の方が実際に優れているでしょうか?
助けてくれてありがとう
コンテナレイアウト(MainActivityからの起動時に開始):
<android.support.v4.view.ViewPager
android:id="@+id/masterViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
そして、これはHelpFragmentのクラスだと思います。
public class HelpFragment extends Fragment {
private View view;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle states) {
view = inflater.inflate(R.layout.layout_help_screen, container, false);
return view;
}
}
そしてフラグメントXML:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/nothing" />
</LinearLayout>