13

誰かが私に例を指摘したりTabbed Dialog、各タブのコンテンツがあるAndroidでシンプルなものを作成する方法を教えてもらえますFragmentsか? 私が見つけたすべての例/チュートリアルはフラグメントとタブに関するものですが、に固有のものはありませんDialogFragments

のドキュメントにFragmentTabHostは、 を使用して通常のフラグメント内にタブを作成する方法が示されていますgetChildFragmentManager()。これは、フラグメントが a の場合にも機能するはずですDialogFragmentが、試してみると次のようになります。

java.lang.IllegalStateException: Fragment does not have a view at android.support.v4.app.Fragment$1.findViewById(Fragment.java:1425)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:901)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
...

ビューを設定するための私のコードは次のとおりです(その後、に渡されAlertDialog.setView()ます):

private void setupView(View v) {
    mTabHost = (FragmentTabHost) v.findViewById(android.R.id.tabhost);

   mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent);

   mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab1"),
            MyDialogFragment.class, null);
}
4

4 に答える 4

2

私は同じ解決策を探していましたが、何もうまくいかなかったので、フラグメントを含む独自のAndroid タブ付きダイアログを作成しました。それは誰かを助けるかもしれません。

ここから完全なソースコードをチェックアウトできます

于 2016-03-24T05:56:19.747 に答える
0

代わりに DialogFragment を使用してみて、dialogfragment レイアウトに fragmentTransaction の LinearLayout を含めます。

FragmentTransaction t = getSupportFragmentManager().beginTransaction();  
String Tag = fragment.getClass().getSimpleName(); 
t.replace(R.id.llTabFragmentContainer, fragment, Tag); 
t.commit(); 

fragment はタブフラグメントです。乾杯

于 2014-11-05T05:49:56.383 に答える