У меня есть ScrollView, который содержит LinearLayout, в LinearLayout У меня есть представление, что я расширяю или сворачиваюсь в зависимости от нажатой кнопки. Эта штука прекрасно работает.Как поместить ScrollView после остановки анимации
Что я хотел бы сделать, это переставить ScrollView так, чтобы при расширении представления он автоматически переместил вид прокрутки так, чтобы расширенный вид был виден. Я бы хотел, чтобы представление автоматически переместило его автоматически, поэтому пользователю не нужно прокручивать.
В настоящее время, когда открывается представление, все данные отбрасываются, и вам нужно прокручивать вверх, чтобы просмотреть недавно расширенный контент. Я попытался изменить положение после окончания анимации, но этот раздел кода никогда не срабатывает. Ниже мой код.
public void animateExpandCollapse(View v) {
View captionLayout = null;
View parentLayout = null;
if(v.getId() == R.id.squareCal) {
captionLayout = (LinearLayout) findViewById(R.id.layout3);
parentLayout = (LinearLayout) findViewById(R.id.squareLayout);
} else if(v.getId() == R.id.circleCal) {
captionLayout = (LinearLayout) findViewById(R.id.layout2);
parentLayout = (LinearLayout) findViewById(R.id.circleLayout01);
}
if (!more) {
dda = new DropDownAnim(captionLayout, 350, false);
more=true;
} else {
dda = new DropDownAnim(captionLayout, 350, true);
more=false;
}
dda.setDuration(350);
parentLayout.startAnimation(dda);
// Here, I want to position ScrollView to the bottom
// After the animation has finished but this never fires.
if(dda.hasEnded()) {
ScrollView sv = (ScrollView)findViewById(R.id.calScroller);
sv.scrollTo(0, sv.getBottom());
}
return;
}