Red de conocimiento informático - Material del sitio web - Cómo borrar todos los controles en un diseño

Cómo borrar todos los controles en un diseño

LayoutInflater sigue siendo muy útil en el desarrollo real y su función es similar a findViewById (). La diferencia es que LayoutInflater se usa para encontrar el bloque de código del archivo de diseño xml en res/layout/ y crear una instancia del mismo; FindViewById() es para encontrar controles de widgets específicos (como Button, TextView, etc.) en el archivo de diseño xml. Roles específicos:

1. Para interfaces que no se han cargado o que desea cargar dinámicamente, debe usar LayoutInflater.inflate() para cargarlas;

2. interfaces cargadas, puede utilizar el método Activiyt.findViewById() para obtener elementos de la interfaz.

LayoutInflater es una clase abstracta, declarada de la siguiente manera en el documento:

La clase abstracta pública LayoutInflater extiende el objeto

Tres métodos para obtener instancias de LayoutInflater:

1.LayoutInflater inflador = getLayoutInflater(); //Llamar a getLayoutInflater() de la actividad.

2.LayoutInflater local inflador = (LayoutInflater)Context. getsystem service (Context. LAYOUT _ INFLATER _ SERVICE

1. LayoutInflater inflador = LayoutInflater . /p>

De hecho, estos tres métodos son esencialmente los mismos, como se puede ver en el código fuente:

getLayoutInflater():

El método getlayoutinterpreter() de la actividad es llamado método getlayoutinterpreter() de PhoneWindow. Eche un vistazo al código fuente:

ventana de teléfono público(contexto de contexto){

super(contexto);

mLayoutInflater = layoutinflater from(context) ;

p>

}

Puedes ver que en realidad está llamando a layoutimporter. de (contexto).

LayoutInflater.from(context):

Diseño estático público de (contexto contextual){

LayoutInflater LayoutInflater = (LayoutInflater)Context getsystem service(Context. LAYOUT _ INFLATER _ SERVICE);

if (LayoutInflater ==null) {

Lanza un nuevo AssertionError("LayoutInflater no encontrado.");

}

Volver a LayoutInflater

}

Puedes ver que en realidad llama a context.getSystemService().

Conclusión: Entonces, la esencia última de estos tres métodos es que todos se llaman Context.getSystemService().

Método inflar A través de la documentación API del SDK, podemos saber que este método tiene los siguientes formularios sobrecargados y los valores de retorno son todos objetos de vista, de la siguiente manera:

inflación de vista pública (int recurso, raíz de grupo de vista);

3 inflación de vista pública (analizador XmlPullParser, raíz de grupo de vista

4 inflación de vista pública (analizador XmlPullParser, raíz de grupo de vista); , booleano adjunto a raíz) ;

5 vista pública inflar (int recurso, raíz de ViewGroup, booleano adjunto a raíz);

6

7 LayoutInflater INFLATER =(LayoutInflater )getsystem SERVICE(LAYOUT _ INFLATER _ SERVICE);

8 Ver Vista = inflate(r . diseño . personalizado, (grupo de vistas)findViewById(r . id . prueba));

9/ /EditText EditText =(EditText)findViewById(r . id . content);

10 //Error

EditText EditText =(EditText)view . . id . content);

Para el código anterior, se especifica la raíz del segundo parámetro ViewGroup y, por supuesto, también se puede establecer en un valor nulo.

Nota:

El método inflate es diferente del método findViewById;

El importador se utiliza para buscar el archivo de diseño xml en res/layout y crear una instancia del mismo. ;

findViewById() es buscar controles de widget específicos (como Button, TextView, etc.) en un archivo de diseño xml específico.