使用viewPager与片段android?

时间:2015-02-10 22:36:12

标签: android android-layout android-fragments android-pageradapter

我已经尝试了很多教程,但我对android很新,所以这是我的问题。我需要一个导航抽屉片段内的Viewpager。

我有一个带有MainActivity的抽屉布局和片段A,B,C和D.
在片段C上我有我的布局,比如textViews,imageViews,我需要在iOS设备上添加一个viewPager。 问题是每个教程,以及这里回答的问题,说要在Activity上启动PageAdapter,但是我需要在Fragment上使用它,因为它是我有信息来填充C片段的信息。
应该出现的视图分页器,只包含一个填充了webservice请求的textView,我将消息放在textView上,这就是为什么我需要在Fragment 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 studio显示此消息:android.support.v4.app.fragmentmanager与android.support.app.fragmentmanager

不匹配

我尝试更改为支持v13,但无效。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

您定位的是哪种兼容级别?你需要让一切都匹配:

  • FragmentPagerAdapter
  • 你的Fragment对象,特别是片段C

从您的XML()我可以看到您定位到v4,因此您可能希望将所有内容更改为v4。