5

私はアンドロイドプログラミングが初めてで、1つのメインフラグメントアクティビティからビューページャーでタブを使用するアプリを作成しようとしています. ビューページャーとタブは正常に動作しますが、アイテムが選択されたときに完全に新しいフラグメントを開くオプションメニューが必要ですが、ビューページャーを削除できないようです。メイン画面のビューページャーに新しいフラグメントを配置できるようにしたいのですが、フラグメントトランザクションでそれを実行しようとしてもうまくいかないようです

何か案は?

お時間をいただきありがとうございます

4

2 に答える 2

5

確認しておいて:

1) ビューページャーによって選択される Fragment (例: ViewPagerFragment1) には、ルート レイアウトとして ID "container" を持つ FrameLayout があります。

<FrameLayout
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:id="@+id/container"
xmlns:android="http://schemas.android.com/apk/res/android">

       <LinearLayout.... and so on
</FrameLayout>

2) ViewPagerFragment1 クラス内で、アクションがトリガーされた後、新しいフラグメントを FrameLayout に置き換える/追加する必要があります。例えば:

 @Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.selection:
            // Create new fragment and transaction
            NewFragment newFragment = new NewFragment();
            FragmentTransaction transaction = getFragmentManager().beginTransaction();

            transaction.replace(R.id.container, newFragment, "NewFragment");
            transaction.addToBackStack(null);

            transaction.commit();
            break;
         default:
            break;
    }
}
于 2014-04-06T15:28:56.897 に答える
2

さて、あなたは私が推測するの ID を使用しFragmentていくつかに を追加します。に追加するが の上にあることを確認してください。FrameLayoutFrameLayoutFrameLayoutFragmentViewPager

たとえば、ViewPagerとの両方FrameLayoutRelativeLayoutコンテナ内にある場合は、 が のFrameLayout下で宣言されていることを確認ViewPagerしてXMLください。FragmeLayoutこれにより、 が の上にスタックされますViewPager。をにFragment追加すると、FrameLayout上に描画されます。

于 2013-04-24T05:59:48.213 に答える