android.support.v5.app.Fragment or android.app.Fragment?



im using Android Studio 1.0 Rc1.

我创建了一个主活动(选项卡式活动):

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"

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

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

这始终取决于哪些设备运行您的片段。

支持

V4 与支持库一起使用。

它可以在build.gradle中导入

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

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

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

注意:如果您使用支持库,您的应用程序文件大小会大一点。

请确保为支持库导入正确的片段类。是的

import android.support.v4.app.Fragment;

如果您设备要插入操作栏,则还需要支持库 v7。

导入是

import android.support.v7.app.ActionBarActivity;

所需的库可以通过 gradle 导入

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

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

最新更新