У меня есть вид с макетом ниже.

Я хочу переместить вид B в положение вида A и одновременно переместить RelativeLayout C вверх с той же высотой Вид B. Два действия будут выполнены с анимацией. Как показано на рисунке ниже.

Я использую ObjectAnimation для реализации этой функции, но когда я использую
float viewBY = viewB.getTranslationY();
ObjectAnimator viewBMoveUp
= ObjectAnimator.ofFloat(viewB, "translationY",
viewBY, viewBY - viewB.getHeight());
float layoutCCurrentY = layoutC.getY();
ObjectAnimator layoutCMoveUp
= ObjectAnimator.ofFloat(layoutC, "Y",
layoutCCurrentY, layoutCCurrentY - viewB.getHeight());
AnimatorSet animSet = new AnimatorSet();
animSet.play(viewBMoveUp).with(layoutCMoveUp);
animSet.setDuration(150);
animSet.start();
Я считаю, что нижняя часть макета C также имеет вид viewB.getHeight (), чего я не ожидал. Как на картинке ниже:

Так кто-нибудь может помочь с этим?