android – 具有固定头的自定义ListView,在设置填充时导致Jank

前端之家收集整理的这篇文章主要介绍了android – 具有固定头的自定义ListView,在设置填充时导致Jank前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自定义listView,其中包含一个固定标题,以及x个“俯卧撑”视图,可以在列表视图上方被上推并隐藏.

我附上图片来解释他们.对于“黑审查”,只是为了隐藏客户的标志等等

我的问题是,如果我添加一个填充到固定的头文件视图,我会得到列表视图项目浮动在它后面.

固定标题视图采用与查找PinnedHeaderListView相同的技术实现,即列表视图中的静态视图和标题.

我找到了一种启用填充的方法,也就是通过将与引脚标题相同的填充应用于实际的listView,但只有当静态标题可见时才可以使用.

但是,调用setPadding会导致一个相当可见的Jank,我想删除它.
有谁有任何想法如何去除这个屁股?

我有一个简单的应用程序与简单的视图和虚拟数据,这并没有显示这个jank,所以也许这个jank的数量取决于细胞布局的复杂性.

  1. private void updateIfShouldShowStaticHeaderView() {
  2.  
  3. //unfortunately setting the padding of the listView causes JANK.
  4.  
  5. //any ideas?
  6. int bottomOfFloatingHeader = floatingHeader.getBottom();
  7. if (bottomOfFloatingHeader < mHeaderViewHeight) {
  8. staticHeaderViewIsVisible = true;
  9. staticHeader.setVisibility(View.VISIBLE);
  10.  
  11. //need to set padding of listView to avoid having list-view items float behind my padded static header
  12. setPadding(0,staticHeader.getPaddingTop(),getPaddingBottom());
  13. } else {
  14. staticHeaderViewIsVisible = false;
  15. staticHeader.setVisibility(View.INVISIBLE);
  16. //need to set padding of listView to avoid having list-view items float behind my padded static header
  17. setPadding(0,getPaddingBottom());
  18. }
  19. }

首先是显示推杆头的图像

这是一个图像,显示了填充静态固定视图后面的东西.
值得注意的是,如果我调整了listView的填充,它的作用是有意的,但是当它打开/关闭静态标题视图时,我会得到Jank(slowdown).

解决方法

需要更多关于您的问题的信息.

凭借我的理解,Jank是由于您正在使用的大量数据和可绘制.

尝试为您的视图启用硬件加速.

有关HW加速的更多信息,请尝试此http://developer.android.com/guide/topics/graphics/hardware-accel.html

猜你在找的Android相关文章