我有一个包含 LinearLayout 的 ScrollView,在 LinearLayout 中我有一个视图,我根据按下的按钮展开或折叠。这件作品很好。
我想做的是重新定位 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;
}