El método 'onDraw ()' se llamará dos veces cuando se invoca 'invalidate'

El método ' onDraw () ' se llamará dos veces cuando se invoca ' invalidate '. Quiero mover la vista hacia arriba en onDraw() , aquí está mi código

 package com.blsm.sss.view; public class MoveRelativeLayout extends RelativeLayout { private int mDelta = 0; public MoveRelativeLayout(Context context, AttributeSet attrs) { super(context, attrs); } public MoveRelativeLayout(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public void move(int delta) { mDelta = delta; invalidate(); Logger.d("MoveRelativeLayout", "move() delta:" + mDelta); } @Override protected void onDraw(Canvas canvas) { Logger.d("MoveRelativeLayout", "onDraw() delta:" + mDelta); super.onDraw(canvas); canvas.translate(0, mDelta); } } 

Pero cuando llamo al método ' move() ' onDraw se llamará dos veces. No sé por qué, ¿puede alguien ayudarme?

    2 Solutions collect form web for “El método 'onDraw ()' se llamará dos veces cuando se invoca 'invalidate'”

    ¿Es probable que el método move () se llame desde un subproceso distinto del UI Thread? Si es así, empezaría usando postInvalidate () y ver si obtienes el mismo problema …

    No creo que necesites llamar a super.onDraw ();

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.