按照这个说法你应该在之后调用
requestLayout() 
invalidate()
强迫父View按新顺序重绘子View

解决方案 »

  1.   

    如果你的button是在LinearLayout中,使用bringToFront后,Layout的布局会发生改变。
      

  2.   

    具体该怎么调用啊?animation(btn, startX, endX, startY, endY, 500);//动画变大
    btn.bringToFront();//然后怎么调用requestLayout() 、invalidate()
      

  3.   

    使用非顺序依赖的Layout,或像楼上那么弄。
      

  4.   

    使用非顺序依赖的Layout,或像楼上那么弄。requestLayout() 
    invalidate() 我调用了貌似不行
      

  5.   

    具体该怎么调用啊?animation(btn, startX, endX, startY, endY, 500);//动画变大
    btn.bringToFront();//然后怎么调用requestLayout() 、invalidate()
    看介绍应该是这样的:
    btn调用requestLayout()
    这个btn所在的view调用invalidate()requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。invalidate()似乎是对view队列进行pop 然后重新绘制(不确定)
      

  6.   

    具体该怎么调用啊?animation(btn, startX, endX, startY, endY, 500);//动画变大
    btn.bringToFront();//然后怎么调用requestLayout() 、invalidate()
    看介绍应该是这样的:
    btn调用requestLayout()
    这个btn所在的view调用invalidate()requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。invalidate()似乎是对view队列进行pop 然后重新绘制(不确定)
    还是不行
      

  7.   


    你可以再试试那2个函数,换个用法调用对象什么的,如果还不行,有2个思路你可以考虑一下:
    1、检查animation, 是否setfillafter,是否在监听到动画结束后cancel掉了动画
    2、不使用bringtofront改变Z轴顺序, 在布局中把button最后添加进去, 这样button在最上方
      

  8.   


    你可以再试试那2个函数,换个用法调用对象什么的,如果还不行,有2个思路你可以考虑一下:
    1、检查animation, 是否setfillafter,是否在监听到动画结束后cancel掉了动画
    2、不使用bringtofront改变Z轴顺序, 在布局中把button最后添加进去, 这样button在最上方
    已经解决了,使用bringChildToFront可以搞定,多谢你的回答
      

  9.   

    亲,你最后具体是怎么解决的啊,我用bringChildToFront。那个顺序那些还是变化不一!
      

  10.   

    请问最后使用bringChildToFront怎样解决的 求分享