java - 在片段内创建选项卡布局

标签 java android-fragments android-studio

我有一个来自 Android studio 的简单抽屉导航,我对其进行了升级。 我的问题是如何在一个片段中放置一个选项卡?

public class MainFragment extends Fragment  {

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

        v = inflater.inflate(R.layout.fragment_main,container,false);
        tabimplement();
        return  v;
    }

    public void tabimplement()
    {
     // WHAT CODE WILL I PUT HERE?
    }

提前致谢。请教我,我是新手

最佳答案

尝试这样做来处理选项卡:

public class MainFragment extends Fragment {
    private FragmentTabHost mTabHost;

    //Mandatory Constructor
    public MainFragment() {
    }

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

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

        View rootView = inflater.inflate(R.layout.fragment_tabs,container, false);


        mTabHost = (FragmentTabHost)rootView.findViewById(android.R.id.tabhost);
        mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent);

        mTabHost.addTab(mTabHost.newTabSpec("fragmentb").setIndicator("Fragment B"),
                FragmentB.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("fragmentc").setIndicator("Fragment C"),
                FragmentC.class, null);
        mTabHost.addTab(mTabHost.newTabSpec("fragmentd").setIndicator("Fragment D"),
                FragmentD.class, null);


        return rootView;
    }
}

布局:

<android.support.v4.app.FragmentTabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

    </LinearLayout>
</android.support.v4.app.FragmentTabHost>

托管 MainFragment 的 MotherActivity:

public class MotherActivity extends FragmentActivity {

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        MainFragment fragmenttab = new MainFragment();
        getSupportFragmentManager().beginTransaction()
        .add(R.id.item_detail_container, fragmenttab).commit();


    }

和MotherActivity布局:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/item_detail_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
 />

在此之后,只需创建普通片段 B 和 C 等类。结果将是:

enter image description here

关于java - 在片段内创建选项卡布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34146831/

相关文章:

java - 机器人 : rotate a high resolution picture generates an out of memory error

javax.persistence 不包含在 spring 数据 jpa 中?

java - fragment 中的 Admob

java - 在 imageView 中显示来自 url 的 pdf 的第一页

android - Android Studio IDE 上的“文本/设计”选项卡缺少新的 Android 项目

java - Spring Multi-Tenancy Web 服务 : postgres vs mongodb

java - 测试 eclipse 插件时的 AGENT_ERROR_INVALID_EVENT_TYPE

java - 在主要 Activity 中膨胀 fragment 会带来错误

android - 如何将 OnMyLocationButtonClick 与 Google Play 服务结合使用

java - 如何为我的 "home screen"Android studio 设置临时片段