oncreate ()에서 대화 상자를 호출 할 때 솔리드 블랙 스크린

StackOverflow https://stackoverflow.com/questions/1437497

  •  08-07-2019
  •  | 
  •  

문제

나는 지금 몇 가지 다른 앱 에서이 문제를 겪었고 솔루션을 찾을 수없는 것 같습니다.

oncreate ()의 경우 Activity, 대화 상자 테마를 사용하는 활동을 시작합니다. 모든 견해가 있습니다 (예 : 나는 EditText 키보드를 줄 것입니다.), 그들은 보이지 않습니다.

누구든지 아이디어가 있습니까?

어리석은 간단한 예, 재미를 위해 :

public class MainActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);     
        setContentView(R.layout.main);
        startActivityForResult(new Intent(this, CredentialsInputActivity.class), 1);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // do some crap with the result, doesn't really matter what
    }
}

CredentialsInputActivity 꽤 간단합니다 ... 단지 확장됩니다 Activity 그리고 테마가 설정되어 있습니다 @android:style/Theme.Dialog 매니페스트 파일에서.

도움이 되었습니까?

해결책

이것이 a입니다 알려진 버그 1.5에서 (1.6에서 고정되었고 1.1에서는 문제가되지 않음). 버그는 이전 활동이 그려지기 전에 발생하는 새로운 활동에 대한 애니메이션에서 비롯되지만 "오래된"활동이 작업의 첫 번째 활동 인 경우에만 나타납니다.

해결 방법은 테마의 애니메이션을 비활성화하는 것입니다. 주요 대화 테마를 확장하는 새로운 테마 로이 작업을 수행하는 가장 간단한 방법.

res/value/trees.xml :

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="CupcakeDialog" parent="android:Theme.Dialog">
        <item name="android:windowAnimationStyle">@null</item>
    </style>
</resources>

그런 다음 androidmanifest.xml에서 참조하십시오.

<!-- ... -->
<activity 
    android:name=".CredentialsInputActivity"
    android:label="@string/CredentialsInputActivity_window_title"
    android:theme="@style/CupcakeDialog" />
<!-- ... -->

분명히, 당신은 애니메이션을 느슨하게하지만 적어도 당신은 그것을 볼 수 있습니다 :)

참고 : commonsware.com의 솔루션은 의견에 언급 한 경고와도 잘 작동했습니다.

다른 팁

여기서 추측 ...

제 생각에는 @android:style/Theme.Dialog 많은 배경이 반투명하게 설정되어 있습니다. 처음에, 당신의 MainActivity의 배경은 검은 색입니다. 만약 startActivityForResult() 당신 앞에 차고 있습니다 MainActivity 당신의 문제를 설명 할 수 있습니다.

사용해보십시오 postDelayed() a View 당신의 지연 startActivityForResult() 수백 밀리 초씩, 그것이 행동이 바뀌는 지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top