为什么Android Studio自动导入android.app.Fragment而不是androidx.fragment.app.Fragment?

时间:2019-02-09 03:24:44

标签: android android-studio android-fragments android-support-library androidx

每当我从Android Studio的“片段向导”创建片段时,我的Android Studio项目(已迁移到AndroidX)(TheInstrumentals)都会自动导入android.app.Fragment。如何使其自动导入androidx.fragment.app.Fragment?

我尝试从另一个项目(也已迁移到AndroidX)(ViewPagerTest)制作一个新的Blank Fragment,它会自动导入androidx.fragment.app.Fragment而不是已弃用的android.app.Fragment。

完成相同操作后,我的其他项目(Udacity项目)(不在AndroidX中)会自动导入android.support.v4.app.Fragment。

com.mydomain.theinstrumentals.BlankFragment.java:

package com.mydomain.theinstrumentals;

import ...
import android.app.Fragment; //imported automatically
import ...

public class BlankFragment extends Fragment /*Fragment was strikedthrough */ {...}

com.mydomain.viewpagertest.BlankFragment.java:

package com.mydomain.viewpagertest;

import androidx.fragment.app.Fragment; //imported automatically

import ...

public class BlankFragment extends Fragment {...}

com.example.android.miwok.NumbersFragment:

package com.example.android.miwok.NumbersFragment;

import ...
import android.support.v4.app.Fragment; //imported automatically
import ...

public class NumbersFragment extends Fragment {...}

1 个答案:

答案 0 :(得分:0)

我对链接帖子的回答不算老-导入仍然按字母顺序排列,并且可以在设置中修改自动导入的选项

简短的回答-AndroidX是额外的功能,稍后在类路径中,而不在核心API中,因此稍后将在导入菜单中列出

此外,片段向导使用内部模板文件为所有组件创建新类,并且不能假定您将AndroidX作为代码的一部分。如果确实如此,则必须将这些插件插入Gradle构建中,例如