Imaginemos que estamos desarrollando un componente compuesto basado en LinearLayout. Entonces, creamos una clase como esta:
public class SomeView extends LinearLayout {
public SomeView(Context context, AttributeSet attrs) {
super(context, attrs);
setOrientation(LinearLayout.VERTICAL);
View.inflate(context, R.layout.somelayout, this);
}
}
Si usaremos LinearLayout
como raíz de somelayout.xml
, tendremos un nivel de vista adicional, por lo que usaremos la etiqueta merge:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some text"
android:textSize="20sp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Some other text"/>
</merge>
Pero en la pestaña Vista previa en la fusión IDE siempre actúa como FrameLayout, y veremos algo así:
(Es Android Studio, Intellij IDEA es lo mismo, sobre Eclipse, no lo sé)
La vista previa acelera mucho los diseños en desarrollo, es triste perder una gran ayuda incluso para algunos diseños. Puede haber una manera de especificar, ¿cómo Vista previa debe interpretar la merge
etiqueta en un diseño particular?