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

前端之家收集整理的这篇文章主要介绍了android – 具有固定头的自定义ListView,在设置填充时导致Jank前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自定义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

猜你在找的Android相关文章