我的应用程序中有一个列表视图,我希望能够滚动到列表视图中的某个位置,然后在该条目上执行眨眼动画以将其突出显示给用户。
我遇到的问题是,如果滚动到的条目不在列表视图的视图之外,则动画不会闪烁。我知道listview是有效的,因为它不会一次加载所有条目,因此这很可能是动画没有发生的原因。我该如何解决这个问题?
滚动到代码:
//Changes to tab with listview
tabLayout.getTabAt(1).select();
//Get index to scroll to
int selectIndex = whitelistFragment.getWhitelistTableHelper().getListViewEntryIndex(entryString);
//If the entry exists
if(selectIndex != -1) {
//Scroll to index
whitelistFragment.getWhitelistTableHelper().getListView().setSelection(selectIndex);
//Make entry blink several times
View entryView = helperFunctions.getViewByPosition(selectIndex, whitelistFragment.getWhitelistTableHelper().getListView());
Animation blinkAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.blink);
entryView.startAnimation(blinkAnimation);
}
Blink.xml
<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha android:fromAlpha="0.0"
android:toAlpha="1.0"
android:interpolator="@android:anim/accelerate_interpolator"
android:duration="600"
android:repeatMode="reverse"
android:repeatCount="5"/>
</set>
答案 0 :(得分:0)
ListView效率不高,您应该使用RecyclerView。它具有方法scrollToPosition()。稍后在onBindViewHolder中,检查position ==是否闪烁位置并在itemView上运行动画。您可以使用startDelay以获得更好的外观。