【问题标题】:Swipe tabs within fragment在片段内滑动标签
【发布时间】:2016-04-11 17:42:13
【问题描述】:

我有一个导航抽屉,在大多数情况下,当您点击抽屉项目时,它会加载一个片段。

我想加载一个带有滑动标签的片段。 即

导航抽屉(活动)

--- TabFragments(片段)

------- Tab1(片段)

------- Tab2(片段)

我见过的大多数示例都显示了如何向活动添加滑动标签,有人可以指导如何为片段执行此操作。

我实际上已经让它工作到我有一个 viewpager 的地步,并且 FragmentPagerAdapter 使用这个问题的答案设置:

How to put swipe tab views inside one of navigation drawer option

我可以在片段中滑动,但是我想在工具栏的顶部显示标签标题,但由于我是从片段中执行此操作,所以不知道该怎么做

【问题讨论】:

  • 我能做的最好的就是展示这个示例,它对我来说真的很有帮助! github.com/TheLittleNaruto/SupportDesignExample
  • 你想要包含 viewpager 的片段并处理它。?
  • @bryanc 是的,viewpager 进入主片段,滑动会改变子片段
  • 我目前的项目中有这个,将在这里发布可能会有所帮助

标签: android android-layout android-fragments


【解决方案1】:

首先我为内容(片段)使用了一个frameLayout,id为:“container” 在使用的抽屉项选择处理程序方法中:

android.support.v4.app.FragmentManager fragmentManager = getSupportFragmentManager();   
fragmentManager.beginTransaction().replace(R.id.container,MyFragment.newInstance()).commit();

MyFragment 在其 xml 布局中包含 ViewPager:

<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"
    tools:context=".activities.NewDogActivity"
    android:id="@+id/coScroll">
    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
       >
             <android.support.design.widget.TabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:layout_gravity="bottom"
            app:tabMode="scrollable" />
    </android.support.design.widget.AppBarLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/view_pager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">
    </android.support.v4.view.ViewPager>
    </android.support.design.widget.CoordinatorLayout>

MyFragment 类中:

 public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_viewshop, container, false);
        appBarLayout = (AppBarLayout) view.findViewById(R.id.appBar);
        TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tabs);
        ViewPager pager = (ViewPager) view.findViewById(R.id.view_pager);
        View_PagerAdapter adp = new com.vinny.adapter.ViewShopPagerAdapter(getChildFragmentManager());
        pager.setAdapter(adp);
        tabLayout.setupWithViewPager(pager);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-27
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多