Пользовательский элемент управления Android с детьми

Я пытаюсь создать пользовательский элемент управления Android , что содержит LinearLayout . Вы можете думать об этом как о расширенном LinearLayout с причудливыми границами, фоном, изображением слева ...

Я мог бы сделать все это в XML (отлично работает), но поскольку у меня есть десятки вхождений в моем приложении, он получает трудно поддерживать. Я подумал, что было бы лучше иметь что-то вроде этого:

/* Main.xml */
<MyFancyLayout>
    <TextView />   /* what goes inside my control's linear layout */
</MyfancyLayout>

Как вы подойдете к этому? Я бы не хотел переписывать всю линейную компоновку методов onMeasure / onLayout. Вот что у меня есть на данный момент:

/* MyFancyLayout.xml */
<TableLayout>
    <ImageView />
    <LinearLayout id="container" />   /* where I want the real content to go */
</TableLayout>    

и

/* MyFancyLayout.java */
public class MyFancyLayout extends LinearLayout
{
    public MyFancyLayout(Context context) {
        super(context);
        View.inflate(context, R.layout.my_fancy_layout, this);
    }
}

Как бы вы вставили указанный пользователем контент (TextView в main.xml) в нужное место (id = container)?

Ура!

Romain

----- edit -------

По-прежнему не повезло, поэтому я изменил свой дизайн, чтобы использовать более простой макет, и решил жить с небольшим количеством повторяющегося XML. Тем не менее, очень интересно, что кто-нибудь знает, как это сделать!

12
задан Romain 11 January 2011 в 02:48
поделиться