Intereting Posts
Как получить значение datepicker в формате даты? Телефонная клавиатура Android-клавиатура охватывает прокрутку элементов ввода, отключена Android: Как получить журналы ядра после паники ядра? Чтение выпадающего списка содержимого из Excel с помощью apache poi Имеются разные зависимости в классах? Как рассчитать высоту над уровнем моря Безопасное удаление активности Android Android – HttpUrlConnection не закрывается. В результате результаты SocketException Android Studio Project говорит, что проект уже включен в GitHub, несмотря на то, что я удалил репозиторий. Проблема Android Proguard – по-прежнему появляется сообщение об ошибке «java.io.IOException: Can not process class …» при обфускации Применение стиля ко всем диалогам (диалог spinner, alertdialog и т. Д.) Пример входа в Android с использованием метода POST с использованием REST API OnActivityResult RESULT_OK не может быть разрешен переменной в android? Является ли хорошей практикой использование rawQuery в ContentProvider? Android SwipeRefreshLayout, как реализовать canChildScrollUp, если дочерний элемент не является ListView или ScrollView

Разница между setTranslationX / Y и offsetLeftAndRight / offsetTopAndBottom?

Я работаю с CoordinatorLayout в котором позиции дочерних позиций анимируются с ViewCompat.offsetLeftAndRight API ViewCompat.offsetLeftAndRight и ViewCompact.offsetTopAndBottom .

Когда дочерний вид добавляется или удаляется из CoordinatorLayout , операция макета сбрасывает положение каждого ребенка в верхний левый угол экрана, то есть без какого-либо смещения.

В этой статье вы найдете решение, установив прослушиватель макета на дочерний режим и восстановив старые позиции.

Я заметил, что с использованием API setTranslationX и setTranslationY эта проблема не возникает. Дети сохраняют свою позицию после событий макета родителя.

Как мне выбрать между этими двумя наборами API для размещения моих просмотров на экране? Я опасаюсь использовать либо не понимая их различий. Читая официальную документацию, я не понял.

Solutions Collecting From Web of "Разница между setTranslationX / Y и offsetLeftAndRight / offsetTopAndBottom?"

Довольно старый вопрос после многих месяцев у меня мало объяснений:

Прежде всего. Смещение будет перемещать вид по горизонтали или вертикали аналогично, чтобы перевести, но он используется для постоянных результатов.

Когда вы используете View#offsetTopAndBottom(int offset) то внутри он имеет следующие функции:

 mTop += offset; mBottom += offset; 

С другой стороны, tranlate – это переменная, которая вычисляется в дополнение к этим позициям top / bottom / left / right и в основном удобна в анимации.

Оба метода активируют обновление макета, если это необходимо.

Больше было объяснено Ником Батчером в этом хорошем видео: https://www.youtube.com/watch?v=86p1GPEv_fY&t=5m42s

Что касается CoordinatorLayout , вы можете изменить настройки для детей? Например, BottomSheetBehavior не работает с полями, так как игнорирует их. Думаю, это может быть так.