Что я обычно делаю в компонентных средах, так это разбиваю все на пользовательские компоненты. . Тогда каждый пользовательский компонент будет иметь четкую ответственность. Он будет содержать собственный набор компонентов и всю другую логику, связанную с этим компонентом.
Я пытался выяснить, как это можно сделать, и нашел кое-что в Android документацию, которую они любят называть «Комплексным контролем». (См. http://developer.android.com/guide/topi ... l#compound и прокрутите до раздела «Составные элементы управления»). Я хотел бы создать такой компонент на основе XML-файла, определяющего структура просмотра.
В документации сказано:
Обратите внимание, что так же, как с помощью Activity
вы можете использовать либо декларативный
(на основе XML) подход к созданию
содержащихся в нем компонентов, либо вы можете вкладывать
их программно из вашего кода.
Что ж, это хорошие новости! Подход на основе XML — это именно то, что мне нужно! Но там не сказано, как это сделать, за исключением того, что это «как с действием»... Но в действии я вызываю setContentView(...), чтобы раздуть представления из XML. Этот метод недоступен, если вы, например, создаете подкласс LinearLayout.
Поэтому я попытался раздуть XML вручную следующим образом:
Код: Выделить всё
public class MyCompoundComponent extends LinearLayout {
public MyCompoundComponent(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.my_layout, this);
}
}
Может кто-нибудь предложить мне лучший способ подойти к этому, избегая создание избыточного экземпляра LinearLayout?
Подробнее здесь: https://stackoverflow.com/questions/147 ... -component
Мобильная версия