Android TabHost появляется перед фрагментами

Я не смог найти решение этой проблемы на любых других постах стека или документации на Android. По какой-то причине в FragmentActivity с использованием фрагментов библиотеки support.v4 появляются за вкладкой, как показано на этом скриншоте:

Проблема с вкладками

MainActivity.java:

public class MainActivity extends FragmentActivity {
    // Declare Variables
    private FragmentTabHost mTabHost;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Set the view from main_fragment.xml
        setContentView(R.layout.main_fragment);

        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //locks screen orientation to portrait       

        // Locate android.R.id.tabhost in main_fragment.xml
        mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost);

        // Create the tabs in main_fragment.xml
        mTabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);

        // Create Tab1 with a custom image in res folder
        mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Tab 1"), 
                FragmentTab1.class, null);

        // Create Tab2
        mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Tab 2"), 
                FragmentTab2.class, null);

        // Create Tab2
        mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Tab 3"), 
                FragmentTab3.class, null);
        }

main_fragment.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <FrameLayout
            android:id="@+id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
        />
    </android.support.v4.app.FragmentTabHost>

</LinearLayout>

Любые идеи о том, как решить эту проблему и иметь содержимое фрагмента, отображаются под вкладками?

Спасибо

android,android-fragments,android-tabhost,

0

Ответов: 1


1

это просто :) Вы можете использовать это в [main_fragment.xml]:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

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

    <FrameLayout
        android:id="@+id/tabcontent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

Или: [Использовать маржу]

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <FrameLayout
                android:id="@+id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginTop="55dp"/>

        </RelativeLayout>

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

</LinearLayout>

Удачи.

андроид, андроид-фрагменты, андроид-tabhost,
Похожие вопросы