2016-04-11 3 views
0

У меня есть ящик для навигации, который в большинстве случаев загружает фрагмент, когда вы нажимаете элемент ящика.Пролистывание вкладок внутри фрагмента

Я хочу загрузить фрагмент, который имеет прокручиваемые вкладки с фрагментом. т.е.

нав ящик (активность)

--- TabFragments (фрагмент)

------- Tab1 (фрагмент)

------- Таб2 (фрагмент)

Большинство примеров, которые я видел, показывают, как вы можете добавлять вкладки к действиям, может ли кто-нибудь, пожалуйста, направить, как это сделать для фрагментов.

Я действительно получил это работает до точки порога я иметь ViewPager и FragmentPagerAdapter устанавливается с помощью ответа на этот вопрос:

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

можно перелистывать фрагментов, однако я хочу имеют заголовки вкладок вверху на панели инструментов, но не уверены, как это сделать, учитывая, что я делаю это из фрагмента.

+1

Лучшее, что я могу сделать, это показывает этот пример, это было очень полезно для меня время назад ! https://github.com/TheLittleNaruto/SupportDesignExample –

+0

Вы хотите иметь фрагмент, содержащий viewpager И обрабатывать его.? –

+0

@bryanc yes the viewpager идет в основном фрагменте, а swiping изменяет дочерний фрагмент – raklos

ответ

1

Сначала я использовал frameLayout для содержимого (фрагментов) с идентификатором: «container» в ящике item select handler метод используется:

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

MyFragment содержит ViewPager в XML-макете:

<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); 
Смежные вопросы