






例如,先加载footer布局:
private View mFooter;
mFooter = LayoutInflater.from(this).inflate(R.layout.footer, null); //加载footer的布局
mListView.addFooterView(mFooter);
如果想动态隐藏这个footer,惯性思维是直接设置footer为gone:(其实这样做是不对的)
mFooter.setVisibility(View.GONE); //隐藏footer
实际上,直接设置GONE后,虽然元素是隐藏了,但是还是占用着那个区域,此时和View.INVISIBILE效果一样。
footer的正确使用方法如下:
1、方法一:
(1)布局文件:在footer布局文件的最外层再套一层LinearLayout/RelativeLayout,我们称为footerParent。
layout_footer_listview.xml:(完整版代码)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mFooterparent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:gravity="center"
android:orientation="vertical"
>
<LinearLayout
android:id="@+id/mFooter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<TextView
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:gravity="center"
android:text="查看更多"
android:textColor="#ff0000"
android:textSize="20sp"/>
</LinearLayout>
</LinearLayout>
(2)加载footer和footerParent的布局:
private View mFooter; //footer
private View mFooterParent; //footer的最外面再套一层LinearLayout
mFooterParent = LayoutInflater.from(getActivity()).inflate(R.layout.footerparent_listview, null);
(3)设置footer为gone:(不是设置footerParent为gone)
mFooter.setVisibility(View.GONE);
2、方法二:或者直接在代码中为footer添加footerParent也可以,如下:
private View mFooter; //footer
mFooter = LayoutInflater.from(getActivity()).inflate(R.layout.footer_listview, null);//加载footer布局
LinearLayout mFooterParent = new LinearLayout(context);
mFooterParent.addView(mFooter);
当需要隐藏footer的时候,设置footer为gone:(不是设置footerParent为gone)
mFooter.setVisibility(View.GONE);
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。