2015-01-28 3 views
0

조각 내에서 SurfaceView를 사용하고 있습니다. 조각을 다른 것으로 교체하면 SurfaceView가 잠시 검은 색으로 깜박이고 SurfaceView의 조각이 분리됩니다.분리시 SurfaceView가 내용을 지움

인기있는 제안 중 하나는 setZOrderOnTop(true)입니다. 하지만 SurfaceView를 사용하면 배경색과 배경색이 같아서 깜빡이지 않습니다. 그러나 다른 UI 요소를 보여주고 더 많은 문제를 만듭니다.

두 경우 모두 SurfaceView가 손상되기 전에 내용을 지우므로, setZOrderOnTop은 중요하지 않습니다.

누구든지 분리 할 때 SurfaceView가 내용을 지우는 이유를 설명 할 수 있습니까? 그러나 다른 UI 요소 (Buttons, Lists)에는 이러한 동작이 없습니다. 서피스 뷰 SurfaceView 클래스의 방법 onWindowVisibilityChanged가 호출 될 때

편집 서피스 뷰 SurfaceView가 지워집니다.

답변

0

해결 방법을 발견했습니다. 먼저 새 조각을 추가 한 다음 표시하고 숨 깁니다. 그런 다음 비동기 작업에서 old를 제거합니다. 해결책은 조금 혼란 스럽지만 나는 더 나은 것을 찾지 못했습니다. 다음 예에서 이전 조각에는 fragment 태그와 새 태그 fragment2이 있습니다.

FragmentManager fragmentManager = getSupportFragmentManager(); 
       fragmentManager.beginTransaction().add(R.id.content_frame, fragment, "fragment2").commit(); 
       fragmentManager.beginTransaction().show(fragment).commit(); 
       fragmentManager.beginTransaction().hide(fragmentManager.findFragmentByTag("fragment")).commit(); 
       Timer timer = new Timer(); 
       timer.schedule(new TimerTask() { 

        @Override 
        public void run() { 
         getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag("fragment")).commit();      
        } 
       }, 1000); 

그런 방법으로 SurfaceView도 검은 색으로 깜박이지만 그 순간에는 보이지 않습니다.