Как программно создать макет для фрагмента?

Теперь для создания фрагмента я выполнил следующие коды.

имя файла: fragment_a.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frag_a"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

</LinearLayout>

В Java

public class FragA extends Fragment{
    View view_a;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        view_a = inflater.inflate(R.layout.fragment_a, container, false);

        return view_a;
    }



}

Теперь мне нужно знать, есть ли способ создать представление фрагмента без создания xml файла и написания кода в нем?

Я пытаюсь сказать, что я не хочу создавать xml файл для фрагмента, но я хочу создать представление для этого фрагмента с помощью java-кода.

Возможно ли это?

Ответы

Ответ 1

Да, конечно, это возможно. Просто замените линию инфляции, например, вашим CustomView.

public class FragA extends Fragment{

    View view_a;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        view_a = new YourCustomView();

        return view_a;
    }
}

Или так:

public class FragA extends Fragment{

        View view_a;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            view_a = new LinearLayout(getActivity());

            return view_a;
        }
    }

Или добавить еще Просмотров:

public class FragA extends Fragment{

        View view_a;

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

            LinearLayout ll = new LinearLayout(getActivity());
            ll.addView(new TextView(getActivity()));

            view_a = ll;

            return view_a;
        }
    }