Использование viewPager с фрагментами android?

Я уже перепробовал много руководств, но я новичок в Android, так что вот моя проблема. Мне нужен Viewpager внутри фрагмента навигационного ящика.

У меня есть макет ящика с MainActivity и фрагментами A, B, C и D.
На фрагменте C у меня есть макет, например textViews, imageViews, и мне нужно добавить viewPager, как на устройствах iOS. Проблема заключается в каждом учебнике, и здесь даны ответы на вопросы, в которых говорится, что нужно запустить PageAdapter в Activity, но мне нужно использовать его во фрагменте, потому что там у меня есть информация для заполнения информации фрагмента C.
Пейджер просмотра, который должен появиться, содержит только textView, который заполняется запросом веб-службы, где я получаю сообщение, которое нужно поместить в textView, поэтому мне это нужно во фрагменте C.
Итак, вот мой pageAdapter :

public class PageAdapter extends FragmentPagerAdapter {
private String message;

public PageAdapter(FragmentManager fm , String message) {
    super(fm);
    this.message = message;

}

/**
 * Get fragment corresponding to a specific position. This will be used to populate the
 * contents of the view pager
 *
 * @param position Position to fetch fragment for.
 * @return Fragment for specified position.
 */
@Override
public Fragment getItem(int position) {
    // getItem is called to instantiate the fragment for the given page.

    Fragment fragment = new PageVestiarioFragment();
    Bundle args = new Bundle();
    args.putString("message", message);
    fragment.setArguments(args);
    return fragment;
}

/**
 * Get number of pages the should render.
 *
 * @return Number of fragments to be rendered as pages.
 */
@Override
public int getCount() {
    // Show 3 total pages.
    return 3;
}
}

А это мой элемент pageViewer:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal"
android:id="@+id/pageViewLayout"
tools:context="com.example.mobirama.golaco.VestiarioFragment">

<TextView
    android:id="@+id/message_TextView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Mensagem recebida via rest"
    android:textSize="20sp"
    android:textColor="@color/text_green" />
  </RelativeLayout>

И это мой макет фрагмента C, пока информации слишком много, я помещу только ту часть, где есть просмотр страницы (это внутри relativeLayout)

 <HorizontalScrollView
            android:id="@+id/messages_ScrollView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_centerHorizontal="true" >

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal">

                <android.support.v4.view.ViewPager
                    android:id="@+id/pager"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" />

             </RelativeLayout>

         </HorizontalScrollView>

Просто часть того, где я установил информацию

 for (Integer i = 0; i < messages.length; i++) {
            if (messages[i] != null) {
                items.add(messages[i]);
                mAdapter = new PageAdapter(getChildFragmentManager() , messages[i].getMessage());
                pager.setAdapter(mAdapter);
            }
        }

Проблема в том, что студия Android показывает это сообщение: android.support.v4.app.fragmentmanager не соответствует android.support.app.fragmentmanager

Я попытался перейти на поддержку v13, но у меня ничего не вышло.

Кто-нибудь может мне помочь?


person Juliana    schedule 10.02.2015    source источник
comment
Взгляните на это приложение: github.com/Dahnark/Material-Design-Tabs , это приложение для отображения вкладок внутри фрагмента. Вы можете добавить FrameLayout в свой ящик.   -  person JavierSegoviaCordoba    schedule 11.02.2015


Ответы (1)


На какой уровень совместимости вы нацеливаетесь? Вам нужно, чтобы все соответствовало:

  • FragmentPagerAdapter
  • ваши объекты Fragment, особенно фрагмент C

Из вашего XML () я вижу, что вы ориентируетесь на v4, поэтому вы можете захотеть изменить все на v4.

person Quanturium    schedule 10.02.2015
comment
когда все с v4, у меня проблема совместимости: android.support.v4.app.fragmentmanager не соответствует android.support.app.fragmentmanager - person Juliana; 11.02.2015
comment
Где происходит эта ошибка? а где находится экземпляр android.support.app.fragmentmanager? Если ваш фрагмент, вызывающий getChildFragmentManager (), является экземпляром фрагмента из библиотеки поддержки v4, он должен работать нормально. - person Quanturium; 11.02.2015
comment
Проблема совместимости решена, я использую v13, но макет по-прежнему не отображается. - person Juliana; 15.02.2015