Size: a a a

Android Developers

2020 April 11

ФХ

Филадельфия Хачатуря... in Android Developers
Quantum Harmonizer
Да, может.
Поможешь?)
источник

QH

Quantum Harmonizer in Android Developers
Могу попробовать, если код покажешь.
источник

DZ

Dmitry Zhgun in Android Developers
Ребята, для androidx.fragment.app.FragmentContainerView выставил padding=24dp, но для одного фрагмента мне надо этот padding проигнорировать - есть ли какой то вариант так сделать?
Изначально сделал так, чтобы в каждом rootView фрагмента не указывать этот padding по сто раз.
На SO нашел решение через отрицательный layout_margin, но у меня оно не заработало.
источник

K

Khomin in Android Developers
Dmitry Zhgun
Ребята, для androidx.fragment.app.FragmentContainerView выставил padding=24dp, но для одного фрагмента мне надо этот padding проигнорировать - есть ли какой то вариант так сделать?
Изначально сделал так, чтобы в каждом rootView фрагмента не указывать этот padding по сто раз.
На SO нашел решение через отрицательный layout_margin, но у меня оно не заработало.
Мб в биндинге сделать?
Типа тюпикал значит одно, иначе другое
источник

DZ

Dmitry Zhgun in Android Developers
Khomin
Мб в биндинге сделать?
Типа тюпикал значит одно, иначе другое
Прошу прощения, ни разу не юзал Data Binding.
Добавил в проект, указал в layout'е Activity:
<data>
       <variable
           name="noPadding"
           type="Boolean" />
   </data>
Сделал для FragmentContainerView:
 android:padding="@{noPadding ? @dimen/zeroPadding : @dimen/defaultPadding}"

Я же правильно понимаю, что установить значение в отличное мне нужно в onCreate фрагмента, которому не нужен padding?
Как это сделать?
источник

Y

YorkIsMine in Android Developers
вообще я бы не советовал логику в xml прописывать)
источник

K

Khomin in Android Developers
Dmitry Zhgun
Прошу прощения, ни разу не юзал Data Binding.
Добавил в проект, указал в layout'е Activity:
<data>
       <variable
           name="noPadding"
           type="Boolean" />
   </data>
Сделал для FragmentContainerView:
 android:padding="@{noPadding ? @dimen/zeroPadding : @dimen/defaultPadding}"

Я же правильно понимаю, что установить значение в отличное мне нужно в onCreate фрагмента, которому не нужен padding?
Как это сделать?
Не совсем так
Но где-то похоже
Тип должен быть в viewModel
источник

DZ

Dmitry Zhgun in Android Developers
Просто из вариантов либо в xml каждого фрагмента прописать padding, либо каким то образом убрать padding для 1 фрагмента, где он не нужен
источник

K

Khomin in Android Developers
Биндинг в onCreate мб еще создастся, есть onActivityCreate или как-то так
источник

DZ

Dmitry Zhgun in Android Developers
Khomin
Биндинг в onCreate мб еще создастся, есть onActivityCreate или как-то так
onActivityCreated вызывается же после onViewCreated фрагмента - там уже поздно что то менять будет
источник

K

Khomin in Android Developers
Биндинг все равно асинхронен
Ставьте дефолтное значение
Потом изменение в observer оповестит ui и все поменяется
источник

DZ

Dmitry Zhgun in Android Developers
Khomin
Биндинг все равно асинхронен
Ставьте дефолтное значение
Потом изменение в observer оповестит ui и все поменяется
Ок, это сделал, а как установить из MyFragment эту переменную? Ведь, как я понимаю, сам биндинг мы получаем в Activity в данном случае - его прокинуть надо в фрагмент? Или я чего то не понимаю(
источник

K

Khomin in Android Developers
Создавать можно же где нужно
Activity or fragmeny
Binding.postValue(something value)
источник

K

Khomin in Android Developers
Примеров же валом
источник
2020 April 12

DZ

Dmitry Zhgun in Android Developers
Khomin
Примеров же валом
Да, вы правы.
В каждом примере биндинг получается через
DataBindingUtil.setContentView(this, R.layout.activity_main)
Такое я не могу сделать во фрагменте.
Потому я и не понимаю, как мне установить значение для биндинга Activity в Fragment,

Или мне так и надо инициализировать binding? Тогда каким образом мне его получить в Fragment? Через sharedViewModel?
источник

K

Khomin in Android Developers
источник

K

Khomin in Android Developers
Там через inflate делается
источник

VN

Viktor Noskin in Android Developers
Dmitry Zhgun
Да, вы правы.
В каждом примере биндинг получается через
DataBindingUtil.setContentView(this, R.layout.activity_main)
Такое я не могу сделать во фрагменте.
Потому я и не понимаю, как мне установить значение для биндинга Activity в Fragment,

Или мне так и надо инициализировать binding? Тогда каким образом мне его получить в Fragment? Через sharedViewModel?
DataBindingUtils.inflate(inflater, R.layout.fragment, container, false) во фрагментеи
источник

QH

Quantum Harmonizer in Android Developers
Ребят, я правильно понимаю, что человеку посоветовали XML-датабайндинг чтобы менять пэддинг?
источник

QH

Quantum Harmonizer in Android Developers
В принципе справедливо: после гильотины голова не болит.
источник