2

FragmentTabHost を使用して 3 つのタブを作成しました。ここで、すべてのナビゲーションをタブの下に配置する必要があります。どうすればこれを入手できますか。TabGroupActivity を使用して取得したものを取得する必要があります。

Tab1 --->frag1-->frag2

Tab2 --->frag3

Tab3 --->frag4--->frag5

私は fragmentTransaction.add()、fragmentTransaction.remove()、fragmentTransaction.replace() を使用しました。これら 3 つの方法がありますが、解決策はありません。

Replace メソッドは、既存のフラグメント ビューの上に新しいフラグメント ビューを表示します。

RemoveAdd、これら 2 つの remove のみが機能し、add は機能しません。

前もって感謝します。

TabHostMain.java

    @Override
    protected void onCreate(Bundle savedInstanceState)
 {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.bottom_tabs);

mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);
                mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent);
            View view;
    view=getTabView(R.drawable.ic_launcher);

    Bundle b = new Bundle();
    b.putString("key", "Simple");
    mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator(view),Fragment1.class, null);

    b = new Bundle();
    b.putString("key", "Contacts");
    view=getTabView(R.drawable.ic_launcher);
    mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator(view), Fragment2.class, null);

    b = new Bundle();
    b.putString("key", "Custom");
    view=getTabView(R.drawable.ic_launcher);
    mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator(view),Fragment3.class, null);

}

Fragment3.java

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {

        View view=LayoutInflater.from(getActivity()).inflate(R.layout.activity_second, null);

        ((TextView)view.findViewById(R.id.second_act_text)).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                FragmentManager fm=getChildFragmentManager();
                FragmentTransaction fragmentTransaction=fm.beginTransaction();
                fragmentTransaction.replace(R.id.second_activity, new Fragment1()).addToBackStack(null).commit();
            }
        });
        return view;
    }
4

1 に答える 1