5

プログラムで私のユースケース文脈アクションバーを示す:私はその唯一のビュー要素としてViewPagerで活性を有する非表示には、/

を、(FragmentPagerAdapterを使用して)その3ページ分の3 Fragment秒で設定します。これらの断片の1つはListFragmentであり、残りの2つはいくつかのinfographicsを含む通常のFragmentです。

ListFragmentのリストは「チェック」要素を許可し、チェック要素はコンテキスト・アクション・バーを表示し、選択/チェックされた項目で可能なアクションのリストを提示します。

私の問題:私は、リスト項目のカップルを選択すると

、CABが表示されます。しかし、私がページを切り替えると、CABは表示されたままで、アクションを提示します。さらに悪いことに、ViewPagerは、リストフラグメントのビューを破壊することがあるようです。そのため、アクションを選択すると"java.lang.IllegalStateException: Content view not yet created"例外がスローされます。

私の質問:

  1. は、どのように私は、ユーザーがListFragmentページから離れるときCABが消えるように入手できますか?
  2. (オプション)ListFragmentの裏面に何かの項目がまだチェックされている場合に、CABを再表示するにはどうすればよいですか。

答えて

1

あなたはまず自分のviewPagerViewPager.OnPageChangeListenerViewPager.OnPageChangeListenerを追加する必要があります。

onPageSelectedメソッドでは、ListFragmentのメソッドを呼び出して、CABを閉じます。

EDIT:

現在アクティブなフラグメントを取得するには、それはタグの使用することができます。タグは、この方法でcomputatedすることができる:のviewIdはviewpagerインデックスタブインデックス(位置)またによって断片内側から隠されている断片に反応することができる

+0

で説明されているsetUserVisibleHintメソッドを使用して、どのようにViewPagerから適切なListFragmentにアクセスしますか? – Joshua

+1

フラグメントにアクセスする方法に関する情報を追加する答えを編集しました – david

+0

ViewPager.OnPageChangeListenerはどのように2回ありますか?それはタイプミスですか、それとも別のものを意味するのでしょうか? – RightHandedMonkey