Anonymous
Или, как задать название окну макета?
Anonymous
Я так понимаю, что в файле androidmanifest мы задаём название приложения android:label="@string/app_name"
Anonymous
И, потом это название пишется в названиях макетов в рабочем приложении.
Anonymous
Как изменить название в заголовк окна у макета? Там, где пишется название моего приложения?
Anonymous
Или, так не принято?
plastyr
Всем привет. Столкнулся с проблемой при изменении размера шрифта TextView. Использую следующие параметры android:maxLines="3" app:autoSizeMaxTextSize="100sp" app:autoSizeMinTextSize="1sp" app:autoSizeStepGranularity="1sp" app:autoSizeTextType="uniform" Если анимировано не менять размер TextView то все работает хорошо. Но если использовать анимацию ConstrainLayout для изменения размера TextView то текста размер меняет но отображается некорректно и не влазит полностью. Для анимации использую два layout-a с разными размерами TextView. ConstraintSet set1 = new ConstraintSet(); set1.clone(this, curLayout); ConstraintSet set2 = new ConstraintSet(); set2.clone(this, layoutTo); ChangeBounds transition = new ChangeBounds(); transition.setDuration(500); transition.setInterpolator(new AnticipateOvershootInterpolator(1f)); TransitionManager.beginDelayedTransition(clContainer, transition); set2.applyTo(clContainer);
plastyr
на скриншотах статика
plastyr
plastyr
plastyr
Дмитрий
Лучше не юзать атрибут onClick, добавь кнопке id и поставь на нее в коде onClickListener
Дмитрий
почему не стоить?
Убери из метода аргумент View - вылет, добавь любой другой аргумент - вылет, много таких мелких деталей
Norim
Парни у меня такой вопрос. Пытаюсь сделать переходы между фрагментами и для этого использую отдельный класс в виде фрагмента который у меня называется навигатором с методом перейти и параметром в виде фрагмента. В фрагменте я его ициниализирую, вызываю этот метод, передую фрагмент в который перейти и он делает транзакцию. Но проблема в том что фрагмент менеджер в этом навигаторе всегда null, почему так и что с этим делать?
Norim
Ivan
GoogleMapFragment + LiveData + ViewModel == viewLifeCycleOwner иногда null Всем привет. Заметил такую ошибку, что когда приложение долго висит в фоне на определённом фрагменте (ObjectFragment), потом при запуске падает с IllegalStateException, которое было брошено LiveData, поскольку viewLifeCycleOwner оказался равен null. В тексте ошибке сказано, что View = null, и это получается, поскольку я якобы обращаюсь к viewLifeCycleOwner до onViewCreated, либо после onViewDestroyed. Естественно, что это не так. Обсёрвить я начинаю в onActivityCreated внутри googleMap.getMapAsync { здесь }. Примичательно, что в стэке ошибки есть что-то про dynamite google maps. Есть какие-то мысли? Типо, может у меня пока приложение свёрнуто, карта убивается и начинает получать инстанс заново. Соответвенно, когда она его получила, View, естественно, уничтожена (мы же в фоне), начинается observe. Но что-то я такого не находил что googleMap.getMapAsync будет вызываться в т.ч. и произвольно. Совсем не знаю пока в чём дело...
Norim
Хелп плис
Vlad
@zkv_2 Гугли в сторону navigation drawer under translucent status bar Например https://medium.com/@manishgiri/android-transparent-status-bar-part-1-989e16b11785
jenia
хочу сделать тень в разные стороны размытой. Но получается что снизу она почему то обрезана какая
Лайтовий
Не хватает возможностей для реализации проекта. Проект. В жизни два человека получат числа позиционирующие произведение прошлых действий в настольной игре. (Игра не нуждается в объяснены, но при желании могу, но учитывайте время, которое я потрачу на разъяснение, я вставлю изображения, но они на Укр, там есть больше разъяснения, также во ржи имитация рандов производится с помощью настольных карт). Для игры была придумана мной математическая схема. Как она работает, с учетом моего первоначального опыта (3 день), и для чего? Между двумя игроками имеет случайно состояться выбор кто ходит, чтобы свести число противника до 0, в таком случае он проигрывает. Но числа могут сильно варьироваться, поэтому для выигрыша может требуется несколько ходов, так как проводится деления числа игрока выигравшего "Рандом" на число игрока проигравший после этого остаток добавляется к числу атакующего, и вычитается из обороняющегося. Таким образом имитируется будто линия границы, увеличивается по направлению движения. Но можно замет
Лайтовий
jenia
Лайтовий
Но можно заметить остаток при делимые может быть не целым числом, поэтому в случае остатка где целое число 0, но после запятой есть цифры, то запятая сдвигается просто на одну цифру от нуля, создавая целое число, которое будет иметь большое значение. Почему такая схема? Это добавляет динамичности в игре, когда игрок может иметь под контролем не одну страну. В программе я реализовал это. Игрок один имеет определенное число, в этом диапазоне проводится рандом, также проводится рандом и для другого в диапазон их числа. После эти числа уравниваются. Чем больше число игрока, тем больше шанс получить большее число в диапазоне рандов, где при зривнювани преимущество хода будет отдана большему числу. Таким образом я узнаю кто ходит. После происходит обычное деление, и здесь я не знаю реализовать добавление остатка, с плавающей запятой. Суть, мне нужно остаток перевести в целое число, и добавить лишь его без цифр после запятой, чтобы я не накапливал числа игроков остаток, только целыми числами. Я планирую воспользоваться умножением на 10. Напишу небольшой пример. Также вставлю фото проекта, там есть наглядная вымышленные история 4 ходов. И так. Игрок 1 имеет 54 Игрок 2 имеет 25 Рандом определил что ходит Игрок 2 Значит 25: 54 = 0.46296296296 Для нас важно только первое число после запятой. Мы его переведем в целом, это 4. И проводим вы исчисления. Игрок 1 имеет 25 + 4 = 29 Игрок 2 имеет 54 - 5 = 50 Теперь как видим игрок 1 получил на 4 к своему числа, игрок 2 потерял 4 от своего числа. И теперь между ними может проводиться новый цикл действий, в живую они могут сделать другие действия, которые могут увеличить их число, но это уж как я сказал углубления в игре.
Лайтовий
Проблема
jenia
https://pastebin.com/cJfKkDHD
jenia
Скажите с чем это связано пожалуйста ?
Лайтовий
Я извенююсь за кревой перевод...
Лайтовий
Текс на Укр
Лайтовий
Не вистачає здібностей для втілення проекту. Проект. В житті двоє людей отримають числа які позиціонують добуток минулих дій в настільній грі. (Гра не має потреби в пояснені, але при бажані можу, але враховуйте час, який я витрачу на роз’яснення, я вставлю зображення, але вони на Укр, там є більше роз’яснення, також в житі імітація Рандому проводиться за допомогою настільних карт.) Для гри була придумана мною математична схема. Як вона працює, з врахуванням мого початкового досвіду, і для чого? Між двома гравцями має випадково відбутись вибір хто ходить, щоб звести число противника до 0, в такому разі він програє. Але числа можуть сильно варіюватися, тому для виграшу може потребується декілька ходів, так як проводиться ділення числа гравця що виграв "Рандом" на число гравця що програв, після цього остача додається до числа атакуючого, і віднімається від обороняющегося. Таким чином імітується ніби лінія межі, що збільшується по напрямку руху. Але можна помітити що остача при ділені може бути не цілим числом, тому у разі остачі де ціле число 0, але після коми є цифри, то кома здвигається просто на одну цифру від нуля, створюючи ціле число, яке буде мати вагоме значення. Чому така схема? Це додає динамічності в грі, коли гравець може мати під контролем не лише одну країну. В програмі я реалізував це так. Гравець один має певне число, в цьому діапазоні проводиться рандом, також проводиться рандом і для іншого в діапазон його числа. Після ці числа зрівнюються. Чим більше число гравця, тим більший шанс отримати більше число в діапазоні рандому, де при зрівнювані перевага ходу буде віддана більшому числу. Таким чином я дізнаюсь хто ходить. Після відбувається звичайне ділення, і тут я не знаю реалізувати додавання остачі, з плаваючею комою. Суть, мені потрібно остачу перевести в ціле число, і додати лише його без цифр після коми, щоб я не нагромаджував числа гравців остачами, лише цілими числами. Я планую скористатись множенням на 10. Напишу невеликий приклад. Також вставлю фото проекта, там є наглядна вимишлена історія 4 ходів. І так. Гравець 1 має 54 Гравець 2 має 25 Рандом визначив що ходить Гравець 2 Значить 25 : 54 = 0.46296296296 Для нас важливе лише перше число після коми. Ми його переведемо в ціле, це 4. І проводимо ви числення. Гравець 1 має 25 + 4 = 29 Гравець 2 має 54 – 5 = 50 Тепер як бачимо гравець 1 отримав на 4 до свого числа, гравець 2 втратив 4 від свого числа. І тепер між ними може проводитись новий цикл дій, в живу вони можуть зробити інші дії які можуть збільшити їх числа, але це вже як я сказав поглиблення в грі.
SerJanna
Боюсь представить какая эта проблема, аж на столько слов расписал
Donna
Текс на Укр
А зачем здесь текст на украинском?
Kasper
SerJanna
А зачем здесь текст на украинском?
Ну вдруг кто знает и поможет
Kasper
А гугл транслейт слишком плохо переводит
Kasper
Да укр прогеров андроидных много)
Donna
Он не умеет по русски
Так умеет же, выше текст на русском :)
Kasper
Так умеет же, выше текст на русском :)
Это он через переводчика)
Лайтовий
Как я написал - Суть, мені потрібно остачу перевести в ціле число, і додати лише його без цифр після коми, щоб я не нагромаджував числа гравців остачами, лише цілими числами.
plastyr
Всем привет. Может кто-нибудь знает почему constraintLayout при проигрывании анимации через TransitionManager не вызывает onMesure у своих детей?
Лайтовий
Я воспользуюсь етим методом, или просто int с умножением на 10.
Alexey
Почему тип данных у layout и строкового ресурса int?
Ivan
потому что файл R это перечень идентификаторов
Arsen
findview + getstring
Arsen
MotionLayout bridges the gap between layout transitions and complex motion handling, offering a mix of features between the property animation framework, TransitionManager, and CoordinatorLayout.
plastyr
а че не моушин лейаут?
А там принцип разве отличается. Я к тому что он все равно походу слепки делает а не покадрово меняет размер
Arsen
шо за слепки? если не менять вью на каждом кадре, то никакой анимации не будет в принципе
plastyr
шо за слепки? если не менять вью на каждом кадре, то никакой анимации не будет в принципе
Он для экономии производительности перед началом анимации считает и фиксирует значения которые будут в конце и устанавливает вью. А потом просто ее скейлит а не меняет размер. У меня из-за этого вложенный TextView с autosize - ом. Не может нормально разместить текст внутри контейнера потому что resize вьюхи произошел на старте а на самом деле вьюха еще своего размера не изменила. И получается что текста увеличился а распределиться по контейнеру не смог
Arsen
текствью - медленная хрень в принципе, hyphenation и все такое. Не уверен, что стоит пытаться обойти эту оптимизацию со скейлом.
plastyr
Коряво выглядит тогда анимация. Текст во время анимации торчит
Alexey
И какой метод тошда лучше? Для recycler с адаптером
Альбина
Здрасьте. Как можно реализовать, чтобы при нажатии Up Button или Back Button во фрагменте выходило диалоговое окно с запросом подтверждения выхода?
Альбина
Вот эта стрелочка
thegr1f
Вот эта стрелочка
Лол, вот сейчас вообще неожиданно было
Альбина
Мда, а для меня неожиданно было то, что это такой малоизвестный факт здесь...
Альбина
Как она называется, по-вашему?
Михаил
Как она называется, по-вашему?
по-хорошему, ее надо было назвать back button
Альбина
по-хорошему, ее надо было назвать back button
Back Button - это же кнопка назад внизу экрана, рядом с кнопкой home
Сергій
До навигационной либы, она была как раз не back, а навигация к parent activity. И это конфузило. Потом решили их приравнять к одному действию back
Sergey
У фрагмента нет onBackPressed
руками написать через какой-нибудь BackPressedHandler интерфейс
Дмитрий
Альбина
Уже есть onBackPressedDispatcher в новом appcompat
Пробовал, выдает такую ошибку
Дмитрий
Пробовал, выдает такую ошибку
Так ты его неправильно используешь
Дмитрий
addCallback(.., object : OnBackPressedCallback {..})
Альбина
Антон
посоветуйте пожалуйста шаблон или ссылку как правильно реализовать bottom navigation чтобы формы сохраняли состояние и кнопка нзад имела правильное поведение
Альбина
addCallback(.., object : OnBackPressedCallback {..})
А есть идея, как сделать то же самое, только для Up Button?
Дмитрий
А есть идея, как сделать то же самое, только для Up Button?
Есть метод onSupportNavigateUp или как-то так, вроде должно работать. Если нет то у Toolbar есть свой листенер на эту кнопку setNavigationOnClickListener