У меня есть потрясающий и framelayout, который может содержать фрагмент.
Я пытаюсь сделать анимацию перевода так, чтобы моя разметка кадра начиналась с позиции fab и заканчивалась в ее исходном положении. (сложный макет, потрясающий файл находится в другом XML-файле, но <include>
в том же макете, что и фрейм) Итак, в основном шаг 2 здесь: Как преобразовать FAB во всплывающее меню?
Я пробовал:
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="340"
android:fromYDelta="431"
android:toXDelta="0"
android:toYDelta="0"
android:duration="1000"
android:fillAfter="true" />
и
val anim = TranslateAnimation(340f, 0f, 431f, 0f)
с
myFab.setOnClickListener {
val frame = my_frame_im_about_to_fill_with_a_fragment
frame.startAnimation(anim)
}
Итак, я попытался использовать значения, полученные этими методами
myFab.getLocationOnScreen()
myFab.getLocationInWindow()
Оба метода дают (891, 1130)
. Я попытался подключить их или преобразовать в dp, что приближает их (хотя и не очень близко).
Еще одна странная вещь: я подумал, что если бы я использовал абсолютные значения в анимации, я думал, что ноль будет в верхнем левом углу экрана, но это не так. x: 0 y: 0
дает мне те же результаты, что и 0%,0%
и 0%p,0%p
. все они анимируют вид на верхнюю левую точку, где находится ограничение кадра в xml
Как мне перевести вид из другого вида в «сам»?