Comportamiento de updateViewLayout extraño
Tengo una vista (personalizada) añadida con getWindowManager().addView()
y más tarde estoy modificando los LayoutParameters
de ella (cambiando x
& width
) y llamar a getWindowManager().updateViewLayout()
. Esto funciona, pero estoy recibiendo dos refrescos de pantalla, primero sólo se mueve la cosa entera de acuerdo con el nuevo x
y más tarde se escala de acuerdo con el nuevo ancho. ¿Alguna idea acerca de por qué está sucediendo esto aunque sólo llamo a updateViewLayout
sólo una vez con los nuevos parámetros de diseño?
FYI: el método onDraw
de la vista dibujada a medida mencionada aquí también es llamado sólo una vez por el sistema durante este proceso.
- Utilizando RelativeLayout dinámicamente y estableciendo márgenes en px, dp, inch, mm
- Cómo tener acceso a un elemento TextView en un BroadcastReceiver
- Atributo de diseño XML de Android android: layout_toLeftOf
- Cómo forzar un diseño completo ¿Ver actualizar?
- Wrap_content height, pero limitado a la mitad de los padres
- Obtener vista de niño en un RelativeLayout
- Botones o pestañas comunes en la parte inferior de cada actividad
- ¿Cómo hacer un diseño lineal añadir una vista secundaria en una nueva línea?
- ¿Cómo hacer que mi diseño sea capaz de desplazarse hacia abajo?
- El mapa de bits de la vista no se muestra en Android
- Android: cómo obtener ImageView para llenar la pantalla
- Android: ¿agrega el botón al título de la aplicación?
- Problema de orientación de AdMob en Android
Tratar:
runOnUiThread(new Runnable() { public void run() { view.updateViewLayout(); } });
http://developer.android.com/reference/android/app/Activity.html#runOnUiThread(java.lang.Runnable)
Si no funciona, compruebe lo siguiente:
¿Cómo mover una vista en Android?
¿Estás haciendo esto?
intenta hacerlo :
view.post(new Runnable() { public void run() { view.updateViewLayout(); } });
updateViewLayout
es un método que puede ser invalidado por su ViewGroup
personalizado y en este método ViewGroup
puede implementar todo lo que quiere cambiar.
¿Tal vez haces algo mal en ella?
O también tal vez tienes que implementar este código en UiThread
como en otras preguntas. – En este caso, cuando cambia sus parámetros de forma asíncrona con la primera llamada de la función de dibujo por sistema, su método tal vez pueda cambiar sólo un parámetro y en segunda llamada el segundo parámetro también se cambiará.
- La huella dactilar que ha especificado ya está siendo utilizada por otro cliente Android OAuth2
- Google google mapv2 icono de la URL