我为我的应用“YouTubePlaylist”https://github.com/akoscz/YouTubePlaylist使用了一个项目。
我已经制作了navigation drawer
,我希望将此活动置于片段中。所以,我尝试创建一个fragment
并将其放入,但我有一个错误:Cannot resolve method 'add(int, com.xx.xx.YouTubeReclyclerViewFragment)'
这是我的片段:
public class YouTubeActivity extends Fragment {
private static final String YOUTUBE_PLAYLIST = "XXXXXXXXXXXXXXXXX";
private YouTube mYoutubeDataApi;
public static final String TAG = "YouTubeActivity";
private final GsonFactory mJsonFactory = new GsonFactory();
private final HttpTransport mTransport = AndroidHttp.newCompatibleTransport();
public static FragmentManager fgmanger;
public void onCreate(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View rootView = inflater.inflate(R.layout.youtube_activity, container, false);
//setContentView(R.layout.);
mYoutubeDataApi = new YouTube.Builder(mTransport, mJsonFactory, null)
.setApplicationName(getResources().getString(R.string.app_name))
.build();
getChildFragmentManager().beginTransaction()
.add(R.id.container, YouTubeRecyclerViewFragment.newInstance(mYoutubeDataApi, YOUTUBE_PLAYLIST))
.commit();
}
}
我该如何解决此错误? 谢谢
答案 0 :(得分:1)
该库可能与您使用的Fragment
类不同。
根据Github项目,YouTubeRecyclerViewFragment
是android.support.v4.app.Fragment
,即v4-support库的片段的子类。并且您最有可能使用原生android.app.Fragment
。这两个Fragment类都不兼容,因此方法add()
不能接受其他类型的Fragment。
这意味着您必须使用支持库并使用其Fragment类。请注意,您还必须使用AppCompatActivity
而不是本机Activity类。
要从本机类迁移到支持库,您可以查看this migration guide。
答案 1 :(得分:0)
1)。尝试覆盖onCreateView()
以扩充YouTubeActivity Fragment Class中的布局。有关更清晰的信息,请参阅this。
2)。尝试在YouTubeActivity和YouTubeRecyclerViewFragment中查找Fragment类的导入。这两者应该是一致的。您应该为这两者导入android.app.Fragment
或android.support.v4.app.Fragment
3)。我不知道为什么你需要getChildFragmentManager()
(除非它是一个嵌套的片段情况)才能在你的情况下制作FragmentTransaction。如果您要使用android.app.Fragment,则可以通过getFragmentManager()
完成片段事务,如果您要使用支持片段导入当前的YouTubeActivity Fragment,则可以使用getSupportFragmentManager()
。