我有一个自定义listView,其中包含一个固定标题,以及x个“俯卧撑”视图,可以在列表视图上方被上推并隐藏.
我附上图片来解释他们.对于“黑审查”,只是为了隐藏客户的标志等等
我的问题是,如果我添加一个填充到固定的头文件视图,我会得到列表视图项目浮动在它后面.
固定标题视图采用与查找PinnedHeaderListView相同的技术实现,即列表视图中的静态视图和标题.
我找到了一种启用填充的方法,也就是通过将与引脚标题相同的填充应用于实际的listView,但只有当静态标题可见时才可以使用.
但是,调用setPadding会导致一个相当可见的Jank,我想删除它.
有谁有任何想法如何去除这个屁股?
我有一个简单的应用程序与简单的视图和虚拟数据,这并没有显示这个jank,所以也许这个jank的数量取决于细胞布局的复杂性.
private void updateIfShouldShowStaticHeaderView() { //unfortunately setting the padding of the listView causes JANK. //any ideas? int bottomOfFloatingHeader = floatingHeader.getBottom(); if (bottomOfFloatingHeader < mHeaderViewHeight) { staticHeaderViewIsVisible = true; staticHeader.setVisibility(View.VISIBLE); //need to set padding of listView to avoid having list-view items float behind my padded static header setPadding(0,staticHeader.getPaddingTop(),getPaddingBottom()); } else { staticHeaderViewIsVisible = false; staticHeader.setVisibility(View.INVISIBLE); //need to set padding of listView to avoid having list-view items float behind my padded static header setPadding(0,getPaddingBottom()); } }
首先是显示推杆头的图像
这是一个图像,显示了填充静态固定视图后面的东西.
值得注意的是,如果我调整了listView的填充,它的作用是有意的,但是当它打开/关闭静态标题视图时,我会得到Jank(slowdown).
解决方法
需要更多关于您的问题的信息.
凭借我的理解,Jank是由于您正在使用的大量数据和可绘制.
尝试为您的视图启用硬件加速.
有关HW加速的更多信息,请尝试此http://developer.android.com/guide/topics/graphics/hardware-accel.html