Android smoothScrollToPositionFromTop在转到较低索引时不平滑

Android smoothScrollToPositionFromTop在转到较低索引时不平滑,android,listview,Android,Listview,我需要我的listview在任何时候滚动到一个特定的位置,把这个位置的行放在listview的顶部 为此,我使用了smoothScrollToPositionFromTop(int位置、int偏移、int持续时间) 现在让我们假设我想从索引6到10,它会平滑地滚动。在那之后,让我们假设我想向后,例如,5,滚动一点也不平滑,它看起来像一个快速的翻译 知道我可能遗漏了什么或有什么解决方法吗?我认为在返回时使用smoothScrollToPositionFromTop()是导致问题的原因 我更喜欢使用

我需要我的listview在任何时候滚动到一个特定的位置,把这个位置的行放在listview的顶部

为此,我使用了
smoothScrollToPositionFromTop(int位置、int偏移、int持续时间)

现在让我们假设我想从索引6到10,它会平滑地滚动。在那之后,让我们假设我想向后,例如,5,滚动一点也不平滑,它看起来像一个快速的翻译


知道我可能遗漏了什么或有什么解决方法吗?

我认为在返回时使用
smoothScrollToPositionFromTop()
是导致问题的原因


我更喜欢使用
smoothScrollToPosition()

我认为在返回时使用
smoothScrollToPositionFromTop()
是导致问题的原因


更喜欢使用
smoothScrollToPosition()

解决!我必须使用一种变通方法,基本上:

int topPosition = mListView.getFirstVisiblePosition();
if (targetPosition > topPosition) {
    mListView.smoothScrollToPositionFromTop(targetPosition, 0, duration);
} else if (targetPosition < topPosition) {
    View firstView = mListViewWeeks.getChildAt(0);
    int height = firstView.getHeight();
    mListView.smoothScrollBy(-height * (topPosition - targetPosition), duration);
}
int-topPosition=mListView.getFirstVisiblePosition();
如果(目标位置>顶部位置){
mListView.smoothScrollToPositionFromTop(targetPosition,0,持续时间);
}否则如果(目标位置<顶部位置){
View firstView=mListViewWeeks.getChildAt(0);
int height=firstView.getHeight();
mListView.smoothScrollBy(-height*(topPosition-targetPosition),持续时间);
}

已解决!我必须使用一种变通方法,基本上:

int topPosition = mListView.getFirstVisiblePosition();
if (targetPosition > topPosition) {
    mListView.smoothScrollToPositionFromTop(targetPosition, 0, duration);
} else if (targetPosition < topPosition) {
    View firstView = mListViewWeeks.getChildAt(0);
    int height = firstView.getHeight();
    mListView.smoothScrollBy(-height * (topPosition - targetPosition), duration);
}
int-topPosition=mListView.getFirstVisiblePosition();
如果(目标位置>顶部位置){
mListView.smoothScrollToPositionFromTop(targetPosition,0,持续时间);
}否则如果(目标位置<顶部位置){
View firstView=mListViewWeeks.getChildAt(0);
int height=firstView.getHeight();
mListView.smoothScrollBy(-height*(topPosition-targetPosition),持续时间);
}

第二次平滑滚动时,相对-5元素是否可见?不,它们不可见,可能是发生这种情况的原因。第二次平滑滚动时,相对-5元素是否可见?不,它们不可见,可能是发生这种情况的原因?第二次平滑滚动时相对-5元素是否可见?不,它们不可见,可能是发生这种情况的原因?smoothScrollToPosition()确实工作正常,但将选定的行保留在listview的底部。我不知道怎样才能保持最好的状态。很抱歉,我的回答没有帮助。smoothScrollToPosition()确实可以正常工作,但请将所选行保留在listview的底部。我不知道怎样才能保持最好的状态。很抱歉,我的回答没有帮助。smoothScrollToPosition()确实可以正常工作,但请将所选行保留在listview的底部。我不知道怎样才能保持最好的状态。对不起,我的回答没有帮助。