Наследование фрагментов Android

Можно ли / рекомендовать, чтобы разные фрагменты наследовали друг от друга в Android?

Что было бы лучшим способом инициализировать вещи, которые уже были инициализированы в суперклассе и добавить к нему что-то? (-> например, как обычные подклассы, которые используют super () в своем конструкторе, а затем инициализацию других объектов)

Я смотрел в Интернете, но я не нашел много информации об этом. Я знаю, что можно сделать return super.onCreateView (), но после этого вы не сможете инициализировать другие объекты / представления ….

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView()??? //initialize other objects here //you have to return a view ... } 

Да, это разрешено. Почему нет? Например, если у вас есть несколько фрагментов, которые отображают списки, вы можете поместить все распространенные методы в FragmentList, а затем наследовать другие фрагменты, добавляя только уникальные методы или переопределяя их из супер, если это необходимо.

Но переопределение onCreateView() может вызвать трудности при обработке макетов. В моем недавнем проекте я вместо этого создал метод inflateFragment() в суперклассе следующим образом:

BaseFragment.java

 protected View inflateFragment(int resId, LayoutInflater inflater, ViewGroup container) { View view = inflater.inflate(resId, container, false); FrameLayout layout = (FrameLayout)view.findViewById(R.id.fragment_layout); /* * Inflate shared layouts here */ . . . setHasOptionsMenu(true); return view; } 

Из-за структуры каждый ресурс макета фрагмента завернут в FrameLayout с id = fragment_layout . Но вы можете использовать LinearLayout или другое родительское представление, которое вам нужно.

А потом в унаследованных фрагментах:

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflateFragment(R.layout.my_fragment, inflater, container); /* * Do things related to this fragment */ ... return view; } 
Intereting Posts
Автоматическая всплывающая версия документации для Studio Studio Как сохранить изображение с камеры? В чем разница между действиями и намерениями в Android? Автоматическое удаление строк без ссылок из strings.xml Можно ли обрезать предварительный просмотр камеры? Как извлечь ImageUri из ImageView? Автоматический снимок экрана для запуска Android-приложения для приложения магазина приложений DrawerLayout – событие ввода диспетчера исключений Использование XMLBeans на Android Как применить цветной фильтр в видео в приложении для Android Diffrence между getExtras (). GetSerializable () и getSerializableExtra () Как установить атрибут android: layout_alignParentLeft для просмотра изображений в коде? Ошибка ввода-вывода android: существующее соединение было принудительно закрыто удаленным хостом Есть ли репо, где вы можете скачать виртуальные устройства Android? Droid: Как получить идентификатор кнопки из метода onClick, описанного в XML?