Независимо от того, объявляете ли вы свои фрагменты в XML или создаете их программно, используя FragmentManager
, на самом деле не имеет значения ... оба подхода в конечном итоге будут делать то же самое, что и под капотом. Основное преимущество объявления Fragment
s в XML - это когда вы работаете с многопанельными макетами. Вместо того, чтобы писать кучу кода, чтобы определить текущий размер и/или ориентацию экрана устройства, вы можете просто объявить свои макеты фрагментов нескольких панелей в XML, разместив их в соответствующем ковке макета ресурса (т.е. layout
, , layout-sw600dp
, и т.д.).
Конечно, вы не должны думать о возможности объявления фрагментов в XML в качестве замены для работы с FragmentManager
. Во многих случаях вам, вероятно, придется иметь дело с FragmentManager
в любом случае, поскольку Fragment
s предоставляет массу функций, которые доступны только в коде во время выполнения (т. Е. Управление обратным стеком, переходы Fragment
и т. Д.).
Что вы подразумеваете под «статическим фрагментом» и «динамическим фрагментом»? –
Статические фрагменты уже закодированы в xml активности. В то время как динамические фрагменты отсутствуют. Динамические фрагменты добавляются через транзакцию фрагментатора/фрагмента. – kent510
Читайте здесь о ваших статических фрагментов - [Посмотрите:] [1] [1]: http://stackoverflow.com/questions/22190797/what-is-the-design-logic -behind-fragments-as-static-inner-classes-vs-standalone –