gpt4 book ai didi

android - 如何在具有多个 ListView 的 Activity 中为 ListView 设置空 View ?

转载 作者:行者123 更新时间:2023-11-29 14:25:35 25 4
gpt4 key购买 nike

我在一个 Activity 中有 3 个列表相互堆叠,我想为每个列表设置空 View 。我已经尝试将空 View 设置为动态创建的 View 和布局中定义的 View ,但是无论哪种方式,当列表为空时它似乎都将其折叠为 0 高度,无论我是否设置了最小高度每个列表为 60px。

这是空 View 的 xml 定义

<TextView android:id="@+id/empty_view"
android:layout_width="fill_parent"
android:layout_height="60px"
android:text="@string/empty_text"
/>

mListView.setEmptyView(findViewById(R.id.empty_view));

这就是我以编程方式创建 TextView 的方式。

mEmptyView = new TextView(this);
mEmptyView.setLayoutParams(new ListView.LayoutParams(60, 60));
mEmptyView.setText(R.string.empty_text);

mListView.setEmptyView(mEmptyView);

最佳答案

糟糕的是,这对我来说很愚蠢 :P 我有一种相当可笑的印象,如果我在 xml 布局中随机放置一个 TextView,然后将其设置为列表的空 View ,它会神奇地消失并且然后在列表为空时重新出现在列表中。我想我认为列表会在它的适配器为空时将其添加为列表中的一行。即使其他人决定尝试类似荒谬的事情并想知道发生了什么,这不太可能,我将发布我的原始布局的完整版本以及解决方案。

我用来设置空 View 的代码是标准的:

mListView.setEmptyView(findViewById(R.id.empty));

但是我原来的布局是这样的:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="200sp"
>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:text="@string/drafts"
/>
<ListView android:id="@+id/drafts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="60sp"
/>
<TextView android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:text="@string/finished"
/>
<ListView android:id="@+id/finished"
android:layout_width="fill_parent"
android:layout_height="60px"
android:minHeight="60px"
/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:text="@string/uploaded"
/>
<ListView android:id="@+id/uploaded"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:minHeight="60sp"
/>
<TextView
android:id="@+id/empty"
android:text="DUDE WHERE'S MY CAR?"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
/>
</LinearLayout>

虽然我的 ListView 的最小高度为 60sp,但当列表为空时,高度似乎变为 0。另外,我注意到 TextView 在我的所有三个列表下方都可见,因此它似乎并没有“消失”并重新出现在我的列表中。多么令人失望!在我的粗略疏忽中,为了测试,我将 View 设置为仅为我的第二个列表的 emptyView,确保我的第一个和第二个列表为空,并填充第三个列表。我的第一个列表有它的最小高度,我的第二个缩小到 0,我的第三个列表被正确填充,我的空 View 出现在它下面。我没有尝试填充第二个列表,因此从未意识到空 View 随后会消失。

最后,在花了一个多小时玩弄动态生成的空 View 和诸如此类的东西之后,我把它搁置了一天,今晚回来测试填充第二个列表。瞧,空旷的景色消失了,灯泡亮了。我快速测试了将空 View 移动到第二个列表下方和第三个列表上方,当然,它工作得很好!

这是新的工作布局:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="200sp"
>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:text="@string/drafts"
/>
<ListView android:id="@+id/drafts"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:text="@string/finished"
/>
<ListView android:id="@+id/finished"
android:layout_width="fill_parent"
android:layout_height="60px"
android:minHeight="60px"
/>
<TextView
android:id="@+id/empty"
android:text="DUDE WHERE'S MY CAR?"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
/>
<TextView android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:text="@string/uploaded"
/>
<ListView android:id="@+id/uploaded"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>

</LinearLayout>

很长的回答,可能只是自言自语,但无论如何 - 问了问题,弄明白了,我似乎永远无法在这里回答其他人的问题,所以我还是回答我自己的问题吧:)

关于android - 如何在具有多个 ListView 的 Activity 中为 ListView 设置空 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7425017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com