当我的Activity加载时,我膨胀了一个用于页脚的布局文件。我将它附加到ListView(addFooterView),然后将其可见性设置为View.GONE。我保留了对它的引用,当我希望用户看到它时,我将可见性设置为View.VISIBLE。
在大多数情况下,这很有效。然而,页脚似乎仍占用空间。如果用户使用滚轮/打击垫,则页脚占用的区域会突出显示。我想更多地打磨它,以便页脚完全消失;理想情况下,不要将其从ListView中删除。
这可能吗?或者我是否必须设置/取消设置脚而不是简单地切换其可见性?
答案 0 :(得分:9)
您可以使用listView.removeFooterView(view)
。最简单的方法是创建一个实例变量来保存膨胀的页脚视图(因此您只需在onCreate()
中对其进行充气)。然后根据需要调用listView.addFooterView(instanceFooter)
和listView.removeFooterView(instanceFooter)
。
编辑: 以下是我正在做的工作:
onCreate
addFooterView()
然后初始化适配器(保留对它的实例引用)并调用setAdapter()
。这将留下ListView
“准备好”notifyDatasetChanged()
removeFooterView()
(如果正在显示则隐藏它,否则不执行任何操作)addFooterView()
答案 1 :(得分:2)
您可以切换可见性。为此,您需要使用线性布局包装页脚的内容,然后将linearlayout可见性设置为GONE。
在下面的例子中,我将LogoLinearLayout的可见性设置为GONE并且它有效。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/LogoLinearLayout"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/Logo"
android:src="@drawable/Logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing3"
android:layout_marginBottom="@dimen/spacing3"
android:layout_gravity="center" />
</LinearLayout>
</LinearLayout>
答案 2 :(得分:-1)
当您调用addFooterView以禁用页脚选择并突出显示时,将isSelectable参数设置为false
答案 3 :(得分:-2)
尝试使用View.INVISIBLE而不是View.GONE。 (我没试过,但它可能会奏效)