2016-04-16 6 views
0

"menu_layout"や "game_layout"のような2つのXMLレイアウトがあります。アプリケーションが起動すると、ビューはsetContentView(R.id.menu_layout)を介して "menu_layout"に設定されます。この行の直後に、別のレイアウト、「top_layout」を作成しています。これは、ビュー切り替えに関係なく常に上に(表示されたままに)する必要があります。別のビュー/レイアウトスイッチに関係なく、1つのレイアウトを引き続き表示させる

つまり、ビューが「menu_layout」から「game_layout」に切り替えられた場合、「top_layout」はまだ表示され、その影響を受けません。

この「top_layout」はどのように作成すればよいですか?

アドバイスありがとうございます。

答えて

0

top_layoutで単一アクティビティを使用し、次にFragmentManagerを使用してフラグメントを切り替えることができるコンテナを下に配置できます。

類似の結果は、コンテナから動的に追加または削除されたビューを使用して手動で達成することができます。フラグメントは、複数の置換されたビューやバックスタックでさらに複雑なシナリオを処理する必要がある場合に役立ちます。 。

レイアウト:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:orientation="vertical"> 
<include layout="@+id/top_layout" /> 

<FrameLayout 
     android:id="@+id/container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1"/> 

フラグメント(2×):

public static class GameFragment extends Fragment { 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 
    return inflater.inflate(R.layout.game_layout, container, false); 
} 

}

フラグメントの追加:

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    MenuFragment fragment = new MenuFragment(); 
     fragmentTransaction.add(R.id.container, fragment); 
     fragmentTransaction.commit(); 

断片スイッチ:

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
    GameFragment fragment = new GameFragment(); 
    fragmentTransaction.replace(R.id.container, fragment); 
    fragmentTransaction.commit(); 

ドキュメント: http://developer.android.com/guide/components/fragments.html

関連する問題