【发布时间】:2020-12-21 12:27:30
【问题描述】:
我有列表视图。当项目处于某个位置时,他会改变颜色。 (见图)。在顶部(带有蓝色方块) - 这是我现在所拥有的。下来 - 我需要什么。但是在滚动时,当项目处于所需位置并改变颜色时,它不会顺利发生。该项目似乎跳到所需的位置。我怎样才能使这个过程更顺畅?谢谢。
这是我的视图类的一部分:
public class TimeView extends View {
...........................
@Override
public void setOnScrollChangeListener(OnScrollChangeListener l) {
}
AbsListView.OnScrollListener scrollListener = new AbsListView.OnScrollListener() {
@Override
public void onScrollStateChanged(final AbsListView view, int scrollState) {
if (scrollState == SCROLL_STATE_IDLE) {
View childView = view.getChildAt(0);
int position = view.getFirstVisiblePosition();
if (-childView.getTop() > childView.getHeight() / 2) {
position++;
}
view.setSelection(position);
}
}
@Override
public void onScroll(final AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
for (int i = 0; i < view.getChildCount(); i++) {
View childView = view.getChildAt(i);
if (i == 1) {
childView.setBackgroundResource(R.drawable.selected_color);
} else {
childView.setBackgroundResource(R.drawable.no_select_color);
}
}
}
};
【问题讨论】:
标签: android scroll android-listview smooth-scrolling