A,B为两个Activity,A中的布局为一个继承自SurfaceView的控件,整个屏幕只显示这一个控件,画的是一些字,B为一个普通的Activity,在配置文件中指定B的屏幕方向android:screenOrientation="portrait"。现将手机横屏,通过A 中的menu 跳转到 B,可是跳到B后,按back键回退到A的时候,只显示一半的A屏幕了,请问该怎么解决这个问题?(路过的兄弟勿扰)

解决方案 »

  1.   

    检查一下从B到A的时候A显示的继承SurfaceView的控件重绘区域是否正确
      

  2.   

    区域不正确 canvas = holder.lockCanvas(); 打印canvas.getWidth()和canvas.getHeight() 时发现开始时是 800*480,后退时是480*800,画布大小不对,请问如何解决这个问题??
      

  3.   

    在A的onresume中重新绘制一遍吧。
      

  4.   

    记得将surfaceview的位置重新计算一下。
      

  5.   

    你只需要把 屏幕的方向 变换一下就好了  因为你有A->B的是时候,屏幕显式的改变了, 而有B->A时, 你并没有指明屏幕的方向啊、  所以 才会出现 你所描述的情况啊
      

  6.   

    这个问题我碰到过,是在contact添加联系人的时候竖屏发生的...
    我我纠结了好几天,最后只能将屏幕设置为横屏,不让它竖屏了android:screenOrientation="landscape"。
      

  7.   

    实在不行就只能是横竖屏加载不同的surfaceview了
      

  8.   

    我也遇到过,添加信息条目一开始全部setVisivble(true)
      

  9.   

    你可以在绘制代码的地方加个if else啊!横屏的时候大小480*800  竖屏的时候定义大小800*480