zoukankan      html  css  js  c++  java
  • 【问题汇总】ListView的FooterView设置可见性的问题

    ListView的FooterView一般用来给用户展示一些提示信息。

    正常情况下,是这么使用的。代码例如以下:

    // footer
    footerLayout = new PullLoadingLayout(context, MODE_PULL_DOWN_TO_REFRESH, releaseLabel, 
        pullLabel, refreshingLabel, isShowHeader);
    refreshableView.addFooterView(footerLayout);
    首先。创建一个FooterView对象,然后调用ListView的addFooterView()方法。这样,这个FooterView就被载入到了ListView的底部。

    可是。存在一个问题,假设想要控制FooterView的可见状态,调用footerLayout.setVisibility(View.VISIBLE)或footerLayout.setVisibility(View.GONE)是不起作用的。

    查阅了一些资料。非常多人都遇见了这个问题。这应该是ListView的一个bug。

    在footerLayout的外层”套“一个父容器。

    代码例如以下:

    // footer
    footerLayout = new PullLoadingLayout(context, MODE_PULL_DOWN_TO_REFRESH, releaseLabel,
        pullLabel, refreshingLabel, isShowHeader);
    footerLayoutHolder = new FrameLayout(getContext());
    footerLayoutHolder.addView(footerLayout, 0, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
        FrameLayout.LayoutParams.WRAP_CONTENT));
    // add footer
    refreshableView.addFooterView(footerLayoutHolder);
    从上面的代码能够看出。在创建了footerLayout对象之后。又创建了一个FrameLayout的对象。叫footerLayoutHolder。然后用footerLayoutHolder对象去”包裹“footerLayout。

    这样,假设想要控制FooterView的显示状态,直接调用footerLayout的setVisibility()方法就可以。

    // 显示
    footerLayout.setVisibility(View.VISIBLE);
    // 隐藏
    footerLayout.setVisibility(View.GONE);



  • 相关阅读:
    LeetCode:Remove Nth Node From End of List
    链表排序(冒泡、选择、插入、快排、归并、希尔、堆排序)
    快速排序partition过程常见的两种写法+快速排序非递归实现
    LeetCode:Permutations, Permutations II(求全排列)
    LeetCode:3Sum, 3Sum Closest, 4Sum
    LeetCode:Two Sum
    判断一个图是否有环
    c++设计一个无法被继承的类
    设计模式--单例模式
    windows多线程同步互斥--总结
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5054376.html
Copyright © 2011-2022 走看看