如何在片段中使用TabLayout

时间:2016-01-29 19:40:05

标签: android android-fragments android-tablayout

我尝试使用从屏幕底部向上浮动的布局创建应用,但我在屏幕底部有标签,所以我想用布局浮动的动画隐藏它们。我的问题是如何访问其他xml文件中的选项卡布局,而不是已经在动画中使用的RelativeLayout。我还在其他文件中定义了TabLayout,而不是用于动画。
我的xml文件看起来像那个 FragmentsActivity:

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.example.young.howittastes.FragmentsActivity">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:layout_alignParentTop="true"
            android:background="?attr/colorPrimary"
            android:elevation="5dp"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>

        <android.support.v4.view.ViewPager
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@id/toolbar"
            android:id="@+id/viewPager"
            android:background="#d8d8d8"/>

        <android.support.design.widget.TabLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/tab_layout"
            app:tabMode="fixed"
            android:background="?attr/colorPrimary"
            android:elevation="6dp"
            app:tabTextColor="#d3d3d3"
            app:tabSelectedTextColor="#ffffff"
            android:layout_alignParentBottom="true" />
    </RelativeLayout>

</android.support.design.widget.CoordinatorLayout>

和Home Fragment:

<RelativeLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/recyclerlayout">
<android.support.v7.widget.RecyclerView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/my_recycler_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipToPadding="false"
    android:paddingBottom="16dp"
    android:paddingTop="16dp"
    android:scrollbars="vertical"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="animation"
        android:id="@+id/animationButton"
        android:layout_centerHorizontal="true"/>
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="250dp"
        android:background="#d3d3d3"
        android:id="@+id/commentLayout"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:elevation="6dp">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="WRITE"
            android:textSize="14sp"
            android:textColor="#000"
            android:textStyle="bold"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="4dp"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="READ"
            android:textSize="14sp"
            android:textColor="#030303"
            android:textStyle="normal"
            android:layout_marginTop="4dp"
            android:layout_marginRight="4dp"
            android:layout_alignParentRight="true"/>
    </RelativeLayout>
</RelativeLayout>

Fragment具有onCreateView和ContentAdapter类。 TabLayout的定义是这样的,但它在我使用动画的片段之外的其他文件中定义:

TabLayout tabs = (TabLayout) findViewById(R.id.tab_layout);

        ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager());
        adapter.addFragment(new HomeContent(), "Home");
        adapter.addFragment(new FavoritesContent(), "Favorite");
        adapter.addFragment(new FavoritesContent(), "Search");
        adapter.addFragment(new FavoritesContent(), "Write");
        viewPager.setAdapter(adapter);

        tabs.setupWithViewPager(viewPager);

1 个答案:

答案 0 :(得分:0)

听起来你想在另一个中包含一个布局XML布局文件。如果这是正确的,则使用封闭布局中的<include>标记。例如,如果tabbar.xml是您要包含的布局:

<include layout="@layout/tabbar"/>

有关详细信息,请参阅this link