2016-01-10 2 views
0

Как говорится в вопросе, фрагменты в android представляют собой View или ViewGroup. Может кто-нибудь объяснитьЯвляются ли Android Fragments View или ViewGroup

Вот метод onCreateView фрагмента из docs

public static class ExampleFragment extends Fragment { 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.example_fragment, container, false); 
    } 
} 

В container параметр, передаваемый в onCreateView() является родителем ViewGroup (от макета на данный вид деятельности), в котором макет фрагмента будет вставлен

И

Чтобы нарисовать пользовательский интерфейс для вашего фрагмента, вы должны вернуть представление из этого метода , который является корнем макета вашего фрагмента.

+2

Это не View или ViewGroup.It является объектом и одним атрибутом является ViewGroup. –

+0

ах фрагменты, первый большой блок разума в разработке, метод, который вы написали, возвращает вид, который раньше был помещен на экран. За кулисами класс Fragment обрабатывает параметр контейнера (не цитируйте его на нем, но я думаю, что это связано с FragmentTransaction.). –

ответ

0

Фрагменты - это вид деятельности, которая не имеет полного экрана, она может просто разбивать экран на множество фрагментов, поэтому он хорошо используется для телефона и планшета.

+0

Да, вы правы в использовании фрагментов. Но я хочу знать, что это View или ViewGroup –

1

Вы не можете определить фрагменты как виды или группы просмотра. Фрагменты - это больше. Самый простой способ визуализации фрагмента состоит в том, чтобы рассматривать их как фрагменты активности, имеющие собственный внешний вид xml, собственное поведение с собственным обратным вызовом жизненного цикла. Они всегда запускайте поверх действия, позволяющего выполнять такие операции, как добавление, замена и т. д. во время выполнения. Таким образом вы можете эффективно и эффективно переключаться между вашими макетами.
Чтобы понять onCreateView метод, рассмотрим следующее объяснение:

public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){ 
     View view =inflater.inflate(R.layout.example_fragment, container, false); 
     return view; 

    } 

это возвращает один вид объекта, всегда является ViewGroup, с набором Посмотреть объект, который определяет интерфейс фрагмента. Activity вызывает этот обработчик событий, когда настало время для того, чтобы Фрагмент предоставил свой интерфейс для отображения.

0

Я думаю, что нет, активность (фрагмент) управляет тем, что показывает представление, viewGroup расширяет представление и реализует ViewManger.Only Activity load related Views может отображать макет телефона. Активность - группа, представление может нормально работать в этом контейнере

0

Ни то, ни другое. Fragment - базовый класс.

От https://developer.android.com/guide/components/fragments.html

Fragment представляет собой поведение или часть пользовательского интерфейса в активностью,

Fragment содержит поле:

// The View generated for this fragment. 
View mView; 

, который генерируется в onCreateView который имеет реализацию:

@Nullable 
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, 
     Bundle savedInstanceState) { 
    return null; 
} 

Так что, если вы хотите Fragment с View затем @Override этот метод. И тогда Fragment может быть показан пользователю, если вы используете соответствующую транзакцию фрагмента из Activity или вложенной Fragment.