Вкладки во фрагменте не отображаются

#java #android #xml #tabs #fragment

#java #Android #xml #вкладки #фрагмент

Вопрос:

Я прочитал здесь много вопросов о вкладках во фрагменте и сделал все, что описано здесь: https://developer.android.com/reference/android/support/v4/app/FragmentTabHost.html

я не получил никакой ошибки, и приложение не вылетает или что-то в этом роде, но фрагмент просто пуст. Класс JobFragment представляет собой простой фрагмент с одной меткой, но он не отображается. вот мой Java-код:

 import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTabHost;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

public class AutoFragment extends Fragment{
    private FragmentTabHost mTabHost;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        mTabHost = new FragmentTabHost(getActivity());
        mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.fragment_auto);
mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"),
            JobFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"),
            JobFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"),
            JobFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"),
            JobFragment.class, null);

    return mTabHost;
}

@Override
public void onDestroyView() {
    super.onDestroyView();
    mTabHost = null;
}

}
  

и вот мой макет xml

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


    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </FrameLayout>
</LinearLayout>

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

Комментарии:

1. можете ли вы опубликовать полный макет и mainactivity? Я думаю, вам не хватает начальной вкладки для </android.support.v4.app.FragmentTabHost>. Также вы правильно кодируете MainActivity, подобный описанному здесь : maxalley.wordpress.com/2013/05/18 /…

Ответ №1:

Попробуйте изменить эту строку на:

   mTabHost.setup(getActivity(), getSupportFragmentManager(), R.layout.fragment_auto);