Ume*_*ani 17 android listview android-animation
我在android中实现了一个listview,看起来就像这样并滚动

我一直在通过在我的适配器的getView中设置膨胀行的布局参数来做到这一点,但是由此产生的问题是列表视图变得生涩.即,只有当一行完全从屏幕传递并且已调用getView时,才会更新行,并为所有可见行提供新的参数,从而导致可以应用动画,并且可以预先获取listview滚动位置.我想要的是视图之间的平滑过渡,即当列表视图向上移动时,内部视图应该与该移动精确地缩放.
这是我解决这个问题的第一级实现希望它可以帮助任何感兴趣的人,使用Bezier路径算法在活动开始时动态创建arrHeight和arrWidth
public class TimelinePinsAdapter extends ParentLazyAdapter {
LinearLayout ll_PinsContainer;
LinearLayout.LayoutParams llParams_PinParameters;
public TimelinePinsAdapter(Activity a, ArrayList<HashMap<String, String>> d) {
super(a, d);
}
public int getCount() {
return data.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
vi = convertView;
if (convertView == null)
vi = inflater.inflate(R.layout.rowsinflate, null, false);
ll_PinsContainer = (LinearLayout) vi.findViewById(R.id.item);
llParams_PinParameters =
new LinearLayout.LayoutParams(0,
(int) TimeLineActivity.arrHeight[position % 7]);
ll_PinsContainer.setLayoutParams(llParams_PinParameters);
return vi;
}
}
Run Code Online (Sandbox Code Playgroud)
在尝试实现“弯曲”列表视图时,我通过窃取 v2 beta Android Wear 支持库找到了一个解决方案。
关键是新的WearableRecyclerView - 在此链接中查看您需要的所有信息。有关如何将支持库添加到项目的详细信息:https ://developer.android.com/wear/preview/start.html
此回收器视图允许您提供自定义 OffsettingHelper 以根据每个列表项的当前位置实现特殊转换。
顺便说一句,无论如何,您都应该使用 RecyclerView,因为这会回收您的视图并提高性能;这将几乎消除您提到的生涩动画,因为不必每次出现新视图时都创建它们。
| 归档时间: |
|
| 查看次数: |
1373 次 |
| 最近记录: |