我使用
在ListView中应用展开动画@Override
protected void applyTransformation(float interpolatedTime, Transformation t) {
super.applyTransformation(interpolatedTime, t);
if (interpolatedTime < 1.0f) {
// Calculating the new bottom margin, and setting it
mViewLayoutParams.bottomMargin = mMarginStart
+ (int) ((mMarginEnd - mMarginStart) * interpolatedTime);
// Invalidating the layout, making us seeing the changes we made
mAnimatedView.requestLayout();
// Making sure we didn't run the ending before (it happens!)
} else if (!mWasEndedAlready) {
mViewLayoutParams.bottomMargin = mMarginEnd;
mAnimatedView.requestLayout();
if (mIsVisibleAfter) {
mAnimatedView.setVisibility(View.GONE);
}
mWasEndedAlready = true;
}
}
在这里,当我尝试单击ListView的最后一项时,我的Listview的最后一项向下扩展,所以我看不到最后一项而不向上滚动。
换句话说,如果我点击最后一个,我希望我的焦点在最后一个项目的底部(自动滚动),这样我就可以立即看到最后一个的全部内容。
有什么办法可以解决吗?
答案 0 :(得分:0)
也许这会有所帮助:(首先检查用户是否点击了最后一项)
listView.setSelection(ListAdapter.getCount() - 1);
或者有时你必须做这样的事情:
listView.post(new Runnable()
{
@Override
public void run()
{
listView.setSelection(ListAdapter.getCount() - 1);
}
});