• 【问题汇总】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);



  • 相关阅读:
    [bzoj1576] [Usaco2009 Jan]安全路经Travel
    [坑][poj2396]有上下界的最大流
    bzoj1458 士兵占领
    [Ahoi2013]差异
    bzoj2424 [HAOI2010]订货
    bzoj1741 [Usaco2005 nov]Asteroids 穿越小行星群
    bzoj2251 [2010Beijing Wc]外星联络
    bzoj1977 [BeiJing2010组队]次小生成树 Tree
    bzoj2729 [HNOI2012]排队
    bzoj1925 [Sdoi2010]地精部落
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5054376.html
Copyright © 2020-2023  润新知