【问题标题】:Problems with FragmentPagerAdapterFragmentPagerAdapter 的问题
【发布时间】:2013-03-15 05:48:26
【问题描述】:

我正在尝试使用 viewpager 和片段制作一个幻灯片屏幕,以便我可以为每个片段加载不同的布局并为每个页面提供不同的功能。

我关注了tutorial 来完成这项工作。

悬停在public Fragment getItem(int arg0) 上时出现的错误:返回类型与FragmentPagerAdapter.getItem(int) 不兼容

和错误 #2:构造函数 FragmentPagerAdapter(FragmentManager) 未定义 --> 悬停super(fm);时得到这个

package com.example.spui;

import android.os.Bundle;
import android.app.Fragment;
import android.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class MyFragmentPagerAdapter extends FragmentPagerAdapter{

    final int PAGE_COUNT = 5;

    /** Constructor of the class */
    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    /** This method will be invoked when a page is requested to create */
    @Override
    public Fragment getItem(int arg0) {

        MyFragment myFragment = new MyFragment();
        Bundle data = new Bundle();
        data.putInt("current_page", arg0+1);
        myFragment.setArguments(data);
        return myFragment;
    }

    /** Returns the number of pages */
    @Override
    public int getCount() {
        return PAGE_COUNT;
    }
}

【问题讨论】:

    标签: android android-fragments android-viewpager fragmentpageradapter android-pageradapter


    【解决方案1】:

    您使用了错误的FragmentManager 导入。请改用android.support.v4.app.FragmentManager

    Fragment 也有同样的问题 - 使用 android.support.v4.app.Fragment

    注意:如果您正在构建仅 API11+ 的应用程序并希望使用本机 Fragments,那么您应该将您的 FragmentPagerAdapter 导入改为 android.support.v13.app.FragmentPagerAdapter

    【讨论】:

    • 太棒了!感谢您的快速响应!这解决了我的错误:D。你能指出我正确的方向,为每个页面使用不同的布局吗?或者我应该为此提出一个新问题,因为顺便说一句,我仍在试图解决这个问题。 “您可以在 3 分钟内接受答案”
    • getItem 可以返回您想要的任何 Fragment - 如果您希望每个页面上的功能完全不同,只需根据页码返回不同的 Fragment。
    • 我是在 MyFragment 中还是在 MyFragmentPagerAdapter 中执行此操作?我用一个新类更新了这个问题,所以你可以看到“MyFragment”支持 v13 和 v4 有什么区别?
    • Support v13 使用 API v11 中引入的 Fragment、FragmentManager 等的 android.app 版本,而不是适用于所有 API 级别的 android.support.v4.app 版本。
    • 其他问题/问题应作为单独的 StackOverflow 问题提出。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-08
    相关资源
    最近更新 更多