Android는 Fragment에서 SurfaceView를 사용하여 전환할 때 검은 화면을 깜빡이는 문제를 해결합니다
방법 1. Activity의 onCreate에 다음 코드를 추가합니다
getWindow().setFormat(PixelFormat.TRANSLUCENT);
근데 프랭크에서 이러면 안 될 것 같아서요.
방법 2. activity의 루트 뷰에 길이와 너비가 0px이고 SurfaceView 요소를 볼 수 없습니다.
이유:
SurfaceView는 일반적인view와 다르기 때문에, 자체적으로 좋은 버퍼와 데이터 접근 메커니즘을 가지고 있으며, 시스템은 그에 대해 특별한 처리를 한다.surfaceview가 현재activity에 처음 추가되었을 때, 시스템은 윈도우 관리자에게 레이아웃을 다시 설정합니다.relayout. 그러면 검은색이 됩니다. 이것은 첫 번째에만 나타나고, 이후에surfaceview를 추가할 때 검은색이 되지 않습니다.
자신의 프로젝트에서fragment를 사용하여 페이지를 전환하기 때문에 목록 파일에 하나의activity 성명만 있지만 코드에는fragment 용기로 activity를 새로 열지 여부를 설정할 수 있습니다. 이 activity에 코드 getWindow () 를 추가하고 싶지 않기 때문입니다.setFormat(PixelFormat.TRANSLUCENT);,그래서 나는 이fragment의 용기로 새로운activity를 사용했고 문제도 해결되었다.
플래시 코드가 이렇게 있어요.
private static final int REQUEST_CODE_SCAN = 1;
openPageForResult("scan",null,CoreAnim.slide,REQUEST_CODE_SCAN);
그러나 이 함수에는 재부팅 함수가 하나 있는데, 새로 액티브를 열었는지 여부입니다. 여기서 재부팅 함수를 사용하여 해결합니다
private static final int REQUEST_CODE_SCAN = 1;
openPageForResult(true,"scan",null,CoreAnim.slide,REQUEST_CODE_SCAN);
함수 원형
/** * fragment , activity * @param newActivity activity * @param pageName * @param bundle * @param coreAnim * @param requestCode * @return fragment */
public final Fragment openPageForResult(boolean newActivity, String pageName, Bundle bundle, CoreAnim coreAnim, int requestCode);
페이지 전환의 구체적인 프레임워크는 다음과 같다https://github.com/lizhangqu/CorePage
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Getting Started with Zend Framework 2 - ViewBy default, the action and view in the controller are one-to-one correspondence, such as HellowordController::indexActio...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.