2016-04-18 18 views
2

自分のビューを表示するための2つのクリックアイコンがあるToolBar(android.support.v7.widget.Toolbar)があります。Androidツールバー、フラグメントを隠して表示する方法

私は、ツールバーをホストし、onCreateOptionsMenu()、onOptionItemSelected()などのメソッドを保持する主なアクティビティは、アイコンに対応する2つのフラグメントを持つべきだと考えました。したがって、あるアイコンをクリックした後、別のアイコンをクリックすると、関連するフラグメントが非表示になります。これは正しい方法ですか?あるいは私はインテントを使うつもりですか?

私はViewPagerでFragmentStatePagerアダプタを使用することも考えましたが、可能性があるかどうかはわかりません。これはToolBarであり、フラグメントAからフラグメントBへ移動する別々のスライドメカニズムではないからです。

+1

2つのフラグメントを使い、 'onOptionItemSelected()'で他のフラグメントに切り替える必要がある場合は、フラグメントトランザクションを行います。 –

答えて

0

あなたの活動にFrameLayoutを追加します。ツールバーのボタンがクリックされたときに、その後

<FrameLayout 
    android:id="@+id/content_frame" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

とは、このように、フラグメントを交換:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 

    if(id == R.id.menu_item_1) { 
     getSupportFragmentManager() 
      .beginTransaction() 
      .replace(R.id.content_frame, fragment1) 
      .commit(); 
    } else if(id == R.id.menu_item_2) { 
     getSupportFragmentManager() 
      .beginTransaction() 
      .replace(R.id.content_frame, fragment2) 
      .commit(); 
    } 

    return super.onOptionsItemSelected(item); 
} 

明らかにあなたが事前にあなたの破片を初期化する必要がありますトランザクションを実行する前に、特定のフラグメントがすでに表示されているかどうかを確認するためのチェックを追加することもできます。

+0

ありがとう、あなたの例は私のソリューションに到達するのを助けた – reyyez

関連する問題