TabHost在活动的片段中

时间:2015-05-01 11:55:21

标签: android android-fragments android-tabhost fragment-tab-host

我想创建一个布局,其中上半部分只是一些具有普通视图的区域,下半部分是一个标签布局。

something like this

我已经看过一些例子,但它们都是如何在活动级别创建标签,即通过扩展涵盖所有活动区域的TabHostActivity。 所以我决定在活动中创建2个片段,其中较低的片段将具有tablayout。 但问题是我不能让这个片段类扩展Fragment以及TabHostActivity ...... 所以任何帮助我怎么能实现这个?

这里是较低片段的代码 -

public class PFrag extends Fragment {
    View mRoot;
    TabHost tabHost;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mRoot = inflater.inflate(R.layout.payfrag, container, false);
        try {
            Resources resources = getResources();
            tabHost = (TabHost)mRoot.findViewById(R.id.tabHost);

            Intent netbintent = new  Intent(getActivity().getApplicationContext(), NB.class);
            TabHost.TabSpec tabSpecNB = tabHost.newTabSpec("NB");
            tabSpecNB.setIndicator("", resources.getDrawable(R.drawable.netb));
            tabSpecNB.setContent(netbintent);

            Intent ccardintent = new Intent(getActivity().getApplicationContext(), Cc.class);
            TabHost.TabSpec tabSpecCc = tabHost.newTabSpec("CC");
            tabSpecCc.setIndicator("", resources.getDrawable(R.drawable.cc));
            tabSpecCc.setContent(ccardintent);


            tabHost.addTab(tabSpecNB);
            tabHost.addTab(tabSpecCc);
        } catch(Exception e) {
            AlertDialog.Builder ad = new AlertDialog.Builder(getActivity().getApplicationContext());
            ad.setMessage(e.toString());
            ad.show();
        }

        return mRoot;
    }
}

1 个答案:

答案 0 :(得分:0)

听起来你需要在你的"底部"中使用FragmentTabHost。片段。

另一个可以帮助您here的链接。

此外,它似乎仅适用于API 17及更高版本,因此请务必牢记这一点!