Я пытаюсь создать пользовательский элемент управления Android, который содержит LinearLayout. Вы можете думать об этом как о расширенном LinearLayout с фантастическими границами, фоном, изображением слева...
Я мог бы все это сделать в XML (отлично работает), но поскольку у меня есть десятки случаев в моем приложении, его трудно поддерживать. Я думал, что было бы лучше иметь что-то вроде этого:
/* Main.xml */
<MyFancyLayout>
<TextView /> /* what goes inside my control 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)?
Ура!
Ромны
----- edit -------
По-прежнему вам не повезло, поэтому я изменил свой дизайн, чтобы использовать более простой макет и решил жить с немного повторяющимся XML. Все еще очень интересно, кто-нибудь знает, как это сделать, хотя!