首页 文章

android.support.v5.app.Fragment或android.app.Fragment?

提问于
浏览
0

即时通讯使用Android Studio 1.0 Rc1 .

我创建了一个MainActivity(TabbedActivity):

public class MainActivity extends ActionBarActivity implements ActionBar.TabListener

它进口:

...
import android.support.v4.app.Fragment;
...

所以继承人的问题:我做了另一个FragmentActivity:

public class BlankFragment extends Fragment {

这个进口:

现在我想这样做:

public Fragment getItem(int position) {
    // getItem is called to instantiate the fragment for the given page.
    // Return a PlaceholderFragment (defined as a static inner class below).

    switch (position){
        case 0:
            return ScoutLogFragment.newInstance("a","b");
        case 1:
            return  BlankFragment.newInstance("a", "b");
        case 2:
            return PlaceholderFragment.newInstance(position + 1);
        default:
            return PlaceholderFragment.newInstance(position + 1);

    }

}

但它告诉我:

“必需:导入android.support.v4.app.Fragment;找到:de.example.local.scouttools.BlankFragment”

如果我将我的主要活动导入更改为android.app.Fragment; t告诉我,我的getItem(int位置)的返回类型是错误的 .

我不明白为什么一个人导入android.app.Fragment和另一个android.support.app.v4.Fragment,如何解决?

1 回答

  • 2

    它总是取决于哪些设备运行您的碎片 .

    支持V4与支持库一起使用 .

    它可以在build.gradle中导入

    compile 'com.android.support:support-v4:21.0.0'
    

    如果您不使用支持库,则只有使用Android 3.0或更高版本的设备才能使用您的片段 .

    如果您使用支持库,则所有至少2.1的设备都可以使用您的碎片 .

    小心:如果您使用支持库,那么您的应用程序在文件大小方面会更大一些 .

    确保为支持库导入正确的Fragment类 . 它是

    import android.support.v4.app.Fragment;
    

    如果您设备要操作ActionBar,您还需要支持库v7 .

    导入是

    import android.support.v7.app.ActionBarActivity;
    

    可以通过gradle导入Required库

    compile 'com.android.support:appcompat-v7:21.0.0'
    

    哦,你的BlankFragment似乎导入了错误的类 . 验证它是否也使用BlankFragment类中的v4 Fragment .

相关问题