findViewById(android.R.id.statusBarBackground) и findViewById(android.R.id.navigationBarBackground) возвращают ноль?
Я примеряла Nougat
а также Oreo
, Оба телефона являются стоковыми Android и оба вида видны и на экране. Мне нужны эти взгляды для моего sharedElementTransition
, Этот вопрос уже задавался здесь, но без ответа. Это происходит со многими людьми, и они обсуждают это здесь в комментариях к ответу Алекса Локвуда, но без определенного решения.
я звоню findViewById()
от моей деятельности и попробовал оба
findViewById(android.R.id.statusBarBackground);
а также
getWindow().getDecorView().findViewById(android.R.id.statusBarBackground);
Я позвонил findViewById()
после setContentView()
Возможно связанный, но в отличие progressBar
, statusBar
а также navigationBar
виды существуют почти все время.
Код:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
getWindow().setSharedElementEnterTransition(getTransitionSet());
getWindow().setSharedElementExitTransition(getTransitionSet());
getWindow().setSharedElementReturnTransition(getTransitionSet());
getWindow().setSharedElementReenterTransition(getTransitionSet());
ActivityCompat.postponeEnterTransition(this);
setEnterSharedElementCallback(mCallback);
}
setContentView(R.layout.summary_image_preview);
navigationBar = getWindow().getDecorView().findViewById(android.R.id.navigationBarBackground);
statusBar = getWindow().getDecorView().findViewById(android.R.id.statusBarBackground);
mToolbar = (Toolbar) findViewById(R.id.toolBar);
// etc...
}
Toolbar
это нормальный вид внутри моего контента, и он работает нормально. но statusBar
а также navigationBar are null
1 ответ
Views
вернуть ноль в onCreate()
функция. Я проверил то же самое Views
внутри моего Fragment
"s onViewCreated()
и они не были нулевыми. Я исправил проблему, отложив findViewById()
до того момента, когда мне это нужно.
Для некоторых из них, в то время как другие виды доступны в onCreate()
, Представления за пределами вашего приложения доступны только после Fragment View
создание