Для этого вы можете использовать мою библиотеку ViewPropertyObjectAnimator
.
Предполагая mNestedScrollView
ваш NestedScrollView
и mChildView
является ребенок View
вы хотите прокрутки, вы можете сделать следующее:
ViewPropertyObjectAnimator.animate(mNestedScrollView).scrollY(mChildView.getTop()).start();
Просто убедитесь, что mChildView.getTop()
не 0
в момент вызова .animate(...)
.
Edit:
Как я уже сказал: убедитесь, что ваш View's
верх ненулевая при ВЫЗОВ .animate(...)
. Другими словами: звоните .animate(...)
только тогда, когда ваш ребенок View
уже имеет размеры. Как вы можете это определить? Например, как это:
mChildView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int width = mChildView.getWidth();
int height = mChildView.getHeight();
if (width > 0 && height > 0) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
mChildView.getViewTreeObserver().removeOnGlobalLayoutListener(this);
} else {
mChildView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
ViewPropertyObjectAnimator.animate(mNestedScrollView)
.scrollY(mChildView.getTop())
.start();
}
}
});
https://developer.android.com/reference/android/support/v4/widget/NestedScrollView.html#smoothScrollTo(int, INT)? – Budius
@Budius, если я не ошибаюсь, такого метода нет – Near1999
Я передал ссылку на официальную документацию, я уверен, что она существует, поскольку документация автоматически генерируется на основе комментариев к коду. Может быть, вам нужно обновиться до последней версии lib? – Budius