5

私のユースケース:

唯一のビュー要素としてa を持つアクティビティがあり、3 つのページにViewPager3 つの が設定されています ( a を使用)。これらのフラグメントの 1 つは で、他の 2 つの通常の にはインフォグラフィックが含まれています。FragmentFragmentPagerAdapterListFragmentFragment

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

私の問題:

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

私の質問:

  1. ユーザーがページから離れたときに CAB を非表示にするにはどうすればよいListFragmentですか?
  2. ListFragment(オプション)背面があり、いくつかのアイテムがまだチェックされているときに、CAB を再表示するにはどうすればよいですか。
4

2 に答える 2

1

ViewPager.OnPageChangeListener最初にwithを に追加する必要がありViewPager.OnPageChangeListenerますviewPager

onPageSelectedメソッドで、メソッドを呼び出してListFragmentCAB を閉じます。

編集:

現在アクティブなフラグメントを取得するには、そのタグを使用できます。タグは、次のメソッドで計算できます。

private static String makeFragmentName(int viewId, int index) {
   return "android:switcher:" + viewId + ":" + index;
}

ここで、viewId はビューページャーの ID であり、インデックスはタブ インデックス (位置) です。

于 2013-02-26T15:32:57.490 に答える