Фрагмент: программно создать представление для заполнения XML - PullRequest
3 голосов
/ 22 апреля 2011

Есть ли способ создать новый макет, который затем можно будет наполнить XML?

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

            one_third = (RelativeLayout)getActivity().findViewById(R.id.list3);

            DisplayMetrics dm = new DisplayMetrics();
            getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm);
            String width = "" + dm.widthPixels;

            int WIDTH;
            int SIZE;

            SIZE = Integer.parseInt(width.toString());

            WIDTH = (SIZE / 3); 

            one_third.setMinimumWidth(WIDTH);

    View homeselect = inflater.inflate(R.layout.listelements, container, false);
    setListAdapter(new ArrayAdapter<String>(getActivity(),
                R.layout.start_row, R.id.label, views));
    return homeselect;

}

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

1 Ответ

1 голос
/ 22 апреля 2011

Этот вопрос на самом деле не о Фрагменте.API здесь просто обеспечивает ту часть иерархии представления, которой управляет фрагмент.Все макеты основаны на иерархии представлений.Вы делаете * * не * делаете свой макет здесь, потому что вы даже не знаете место, в котором нужно делать макет.

Правильный ответ будет таким же, как и при каждом использованиииерархия представлений: участвуйте в обычном потоке макетов через onMeasure () и onLayout ().Если стандартные менеджеры компоновки не будут делать то, что вы хотите, вы можете реализовать свой собственный специальный подкласс ViewGroup, который будет выполнять желаемую компоновку в зависимости от получаемого размера.

...