Size: a a a

Android Developers

2020 June 19

K

Kasem in Android Developers
https://t.me/startandroidchat для начинающих
источник

A

Anton in Android Developers
+
источник

d

danilshik in Android Developers
Daniil
Всем привет.  Пытаюсь добавить еще одну тему и застрял на сплеш скрине. Есть 2 темы, светлая и темная. Соответственно для каждой темы сплеш отличается. Так вот если установить сплеш-тему в манифесте, то она применяется, но тогда всегда будет отображаться только заданная, не учитывая текущую. Для этого создал аттрибут  <attr name="theme_splash" format="reference" /> и задал ему ссылку на нужную тему в каждой из доступных тем, соответственно в манифесте добавил android:theme="?attr/theme_splash", но эффекта это не дало, отображается белый фон. Что я делаю не так?  Пример кода: https://pastebin.com/dhdXtE6r
убери тему из manifest и устанавливай на уровне Activity
источник

d

danilshik in Android Developers
Я сорян, кажется я ошибся
источник

d

danilshik in Android Developers
Я делал так, для Splash была отдельная тема с одним параметров - экран, а в Activity уже менял на основную тему после super.onCreate
источник

d

danilshik in Android Developers
Но я пока тоже не придумал, как менять Splash экран в зависимости от темы основной
источник

D

Daniil in Android Developers
danilshik
Но я пока тоже не придумал, как менять Splash экран в зависимости от темы основной
в этом вся и проблема(
источник

D

Daniil in Android Developers
Daniil
Всем привет.  Пытаюсь добавить еще одну тему и застрял на сплеш скрине. Есть 2 темы, светлая и темная. Соответственно для каждой темы сплеш отличается. Так вот если установить сплеш-тему в манифесте, то она применяется, но тогда всегда будет отображаться только заданная, не учитывая текущую. Для этого создал аттрибут  <attr name="theme_splash" format="reference" /> и задал ему ссылку на нужную тему в каждой из доступных тем, соответственно в манифесте добавил android:theme="?attr/theme_splash", но эффекта это не дало, отображается белый фон. Что я делаю не так?  Пример кода: https://pastebin.com/dhdXtE6r
может сталкивался кто?
источник

d

danilshik in Android Developers
Daniil
в этом вся и проблема(
Как вариант делать по старому - стартовую Activity
источник

d

danilshik in Android Developers
делать time до 5с
источник

D

Daniil in Android Developers
danilshik
Как вариант делать по старому - стартовую Activity
типа, отдельную активити ,которая после инициализации закрывается и стартует нужную?
источник

d

danilshik in Android Developers
Daniil
типа, отдельную активити ,которая после инициализации закрывается и стартует нужную?
да, на которой будет только Drawable находится. А потом стартовать уже основную Activity
источник

D

Daniil in Android Developers
danilshik
да, на которой будет только Drawable находится. А потом стартовать уже основную Activity
такой себе вариант, т.к. первоначально будет все равно показан пустой экран. Проблему это не решит
источник

n

neikist in Android Developers
danilshik
да, на которой будет только Drawable находится. А потом стартовать уже основную Activity
Ну думаю тогда проще в одной, просто два раза setContentView вызвать. Один раз для показа сплеша, до инициализации всей сложной логики, а через Handler.post потом установить полноценную разметку, инициализировать вьюшки там и все остальное. Либо установить тему сразу в onCreate и пересоздать активити. По той же логике.
Вроде оба подхода рабочие должны быть, но сам не пробовал
источник

d

danilshik in Android Developers
neikist
Ну думаю тогда проще в одной, просто два раза setContentView вызвать. Один раз для показа сплеша, до инициализации всей сложной логики, а через Handler.post потом установить полноценную разметку, инициализировать вьюшки там и все остальное. Либо установить тему сразу в onCreate и пересоздать активити. По той же логике.
Вроде оба подхода рабочие должны быть, но сам не пробовал
Splash - это чтобы не показывать белый экран до инициализации приложения. Activty еще в это время не создано. И оно объявляется на уровне Manifest для всего приложения. Как вы будете картинки менять в зависимости от темы (дневная или темная)
источник

D

Daniil in Android Developers
посмотрел как в Ютуб, судя по всему они особо не парятся с этим, добавили светлый сплеш и для темной и для светлой темы
источник

d

danilshik in Android Developers
neikist
Ну думаю тогда проще в одной, просто два раза setContentView вызвать. Один раз для показа сплеша, до инициализации всей сложной логики, а через Handler.post потом установить полноценную разметку, инициализировать вьюшки там и все остальное. Либо установить тему сразу в onCreate и пересоздать активити. По той же логике.
Вроде оба подхода рабочие должны быть, но сам не пробовал
в вашем случае белый экран никуда не исчезнет же
источник

d

danilshik in Android Developers
Может конечно я и ошибаюсь, но добавление новой Activity тоже не решит проблему белого экрана до старта приложения
источник

n

neikist in Android Developers
danilshik
Splash - это чтобы не показывать белый экран до инициализации приложения. Activty еще в это время не создано. И оно объявляется на уровне Manifest для всего приложения. Как вы будете картинки менять в зависимости от темы (дневная или темная)
А никак на это не повлиять. Как раз в активити самый ранний момент по идее когда можно повлиять. Можно просто ускорить применение правильной темы.
Можно только модификатор night повесить на ресурсы, но тогда будет от темы установленной на девайсе зависеть, а не в приложении
источник

n

neikist in Android Developers
А на все приложение повесить нейтральный сплеш
источник