2011-04-29 15 views
4

でタブを選択したときにFragmentDialogを表示することはできますか?ActionBar.TabListenerからDialogFragmentを表示

メソッドの実行が完了した後にコミットされるトランザクションの内部では、onTabSelected()メソッドが実行されます。ただし、DialogFragmentshow()メソッドもトランザクション内で自動的に発生します。そのため、タブが選択されたときにダイアログを表示しようとすると、トランザクションが2回コミットされるため、RuntimeExceptionが返されます。

ご了承ください。

答えて

3

付属のFragmentTransactionは無視してください。あなたがAndroidの互換性ライブラリ(ACL)を使用している場合は、アクションバーから取得FragmentTransactionは、ACL FragmentTransactionアンドロイド3.0 FragmentTransactionではないので

はたとえば、あなたは、これを実行する必要があります。だから、あなたは渡されたものを無視し、自分自身を使用します。

同様に、私はあなたがFragmentTransactionを無視し、問題なしでDialogFragmentを表示することができます。

UXが意味をなさないかどうかは別の問題です。ユーザーがダイアログを受け入れると、タブに何も表示されません。

+0

このアイデアは、タブが選択されているときにコンテンツ領域の上部(アクションバーのすぐ下)に何らかのサブメニューを表示することです。このサブメニューには、選択時にコンテンツ領域を実際のコンテンツに置き換えるフィルタリングオプションが含まれています。 – mgv

+0

@mgv :: :: shrug ::まだ私にとって奇妙な音。サブメニューは正常です。ダイアログのような一時的なUI要素を使用することはできません。ユーザーはタブをタップし、サブメニューから項目を選択し、今度はサブメニューから他の項目を選択することはできません。タブの代わりに「リスト」ナビゲーションを使用し、 'Spinner'の行をメニュー階層を示すようにレンダリングするのはなぜですか? – CommonsWare

+0

それは本当です、それはむしろ奇妙に聞こえる。私はこのようにするように求められてきましたが、私はあなたのアドバイスに従って、私がパーティーをし、それに従う権利のために戦うと思います。 P.S:FragmentTransactionを無視して、あなたの答えは正しいものでした。 – mgv

関連する問題