2010-07-11 2 views
2

У меня есть пользовательский класс под названием NoteView, который расширяет FrameLayout. Раньше я только что использовал фондовый LinearLayout и имел уже построенный XML-макет, который я хочу использовать повторно, добавив эту целую иерархию (с некоторыми другими видами наложения, поэтому мне нужен фреймэйт) до NoteView.Как добавить макет из xml в Extended FrameLayout Android?

Проблема в том, что я не могу понять, как раздуть XML и добавить его в NoteView из класса NoteView. Я могу добавить его после завершения инициализации, но я хочу иметь возможность раздувать эту иерархию и добавлять ее автоматически, когда мой NoteView либо создается, либо завышается из XML.

Как я могу заполнить свой расширенный FrameLayout макетом из XML, добавив его из класса NoteView?

ответ

5

Попробуйте LayoutInflater

LayoutInflater inflater = (LayoutInflater) context 
    .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
LinearLayout myView = (LinearLayout) inflater.inflate(R.layout.my_layout, null); 
frameLayout.addChild(myView); 

Посмотрите документацию для LayoutInflater здесь: http://d.android.com/reference/android/view/LayoutInflater.html

+0

Я попытался это, но он не работал в первый. Я просто понял, что я выбрал свой верхний уровень для неправильного класса, который вызывал его сбой. Весь этот вопрос - красная селедка. :) – CodeFusionMobile

+0

благодарю вас. Этот код поможет мне много –

+0

'FrameLayout' не имеет' addChild (...) 'метода. Вы имели в виду 'addView (View child)'? – Roman

Смежные вопросы