ViewPager и FragmentActiviy вместо Fragment
-
21-12-2019 - |
Вопрос
У меня было простое приложение, и теперь я меняю его на более профессиональное...Теперь я хочу, чтобы вся часть моего приложения попала в ViewPager
вместо того, чтобы скрываться под кнопками, частью моего приложения является файловый менеджер, который расширен Activty
, Я изменил это на расширяет FragmentActivty
для работы с ViewPager
в конце концов, безуспешно.
Мой вопрос таков:можно ли использовать другие виды фрагментов вместо Fragment
для ViewPager
вообще?
должен ли я закодировать свой FileManager с нуля!!!???Есть ли какая-нибудь альтернатива?
РЕДАКТИРОВАТЬ :Я хочу создать что-то почти подобное этому апп
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return FragmentClass.newInstance(0, "Page # 1");
case 1:
return FragmentClass.newInstance(1, "Page # 2");
case 2:
return FileDialog.newInstance(2, "FileManager");
//Here is my problam, that says "Type mismatch: cannot convert from FileDialog to Fragment"
//It wants Fragment type
default:
return null;
}
}
Решение
FragmentActivity - это не фрагмент, это специальное действие в библиотеках поддержки, которое позволяет вам использовать фрагменты в старых версиях Android.К сожалению, вы не можете поместить FragmentActivity в ViewPager.Вы должны использовать классы, производные от класса Fragment, в библиотеке поддержки, если вы собираетесь использовать ViewPager, потому что ViewPager существует только в библиотеке поддержки.
Чтобы прояснить ситуацию с фрагментами, вы столкнетесь с двумя разными суперклассами фрагментов (оба из которых называются Fragment).Разница в том, что один из них взят из обычных библиотек Android, а другой - из библиотек поддержки.Вам нужны фрагменты, производные от суперкласса Fragment в библиотеках поддержки (android.support.v4.app.Fragment), если вы хотите использовать их с ViewPager.
Другие советы
Фрагмент сам по себе является суперклассом и может использоваться по-разному.
Взгляните на документы разработчика по фрагментам для их реализации и наилучших практик с точки зрения использования.Если вы не ищете очень специфическую библиотеку для своего приложения, вам не нужно изобретать велосипед заново.