Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 添加新行时如何调整ListView的大小?_Android_Resize_Android Listview - Fatal编程技术网

Android 添加新行时如何调整ListView的大小?

Android 添加新行时如何调整ListView的大小?,android,resize,android-listview,Android,Resize,Android Listview,所以我有这个: ...<!--Stuff above--> <ListView android:id="@+id/reminders_list" android:layout_width="match_parent" android:layout_height="wrap_content"></ListView> ...<!--More stuff below--> 。。。 ... 我的问题是,当我尝试添加更多行

所以我有这个:

...<!--Stuff above-->
<ListView 
     android:id="@+id/reminders_list"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"></ListView>
...<!--More stuff below-->
。。。
...

我的问题是,当我尝试添加更多行时,它不起作用,因为如果没有更多空间,适配器不会添加更多视图。至少在这种情况下。这意味着我需要动态调整它的大小。问题是如何做到这一点?如果除了调整尺寸之外,还有其他可能的话,我宁愿这样做。提前感谢。

问题在于您的
android:layout\u height=“wrap\u content”

将“高度”设置为“包裹内容”将仅显示前三行,其余将被忽略。尝试将其设置为android:layout\u height=“fill\u parent”

正如(谷歌工程师在UI工具包上工作)在他的帖子中所说的那样

通过将宽度设置为wrap_content,您告诉ListView的宽度与其最宽的子项相同。因此,ListView必须测量其项,并且要获取项,必须在适配器上调用getView()。这可能会发生多次,具体取决于布局过程的数量、父布局的行为等

因此,如果您将ListView的布局宽度或布局高度设置为包装内容,ListView将尝试测量附加到它的每个视图-这绝对不是您想要的

请记住:避免在任何时候都为listview或GridView设置wrap_内容,有关更多详细信息,请参阅此讨论listview的世界


问题在于您的
android:layout\u height=“wrap\u content”

将“高度”设置为“包裹内容”将仅显示前三行,其余将被忽略。尝试将其设置为android:layout\u height=“fill\u parent”

正如(谷歌工程师在UI工具包上工作)在他的帖子中所说的那样

通过将宽度设置为wrap_content,您告诉ListView的宽度与其最宽的子项相同。因此,ListView必须测量其项,并且要获取项,必须在适配器上调用getView()。这可能会发生多次,具体取决于布局过程的数量、父布局的行为等

因此,如果您将ListView的布局宽度或布局高度设置为包装内容,ListView将尝试测量附加到它的每个视图-这绝对不是您想要的

请记住:避免在任何时候都为listview或GridView设置wrap_内容,有关更多详细信息,请参阅此讨论listview的世界



向列表适配器添加元素时,需要调用其
notifyDataSetChanged()
成员函数,通知任何附加的观察者(如ListView)数据已更改,并将导致其刷新。

向列表适配器添加元素时,需要调用其
notifyDataSetChanged()
member函数,向其通知任何附加的观察者(如ListView),数据已更改,并将使其刷新。

您可以使用自定义列表适配器并将元素列表传递给它。嗯,我实际上从未想过这一点。让我试试。我会在iTunes自定义适配器类上与您联系,并通过BaseAdapter对其进行扩展,您将得到4个函数,其中一个函数是getCount(),传递您想要的值you@AkashG这正是我正在使用的。但我遇到的问题正是因为这个。当ListView下没有任何内容时,这不是问题。但显然,当有东西时,它不会调整大小。更糟糕的是,由于没有空间,尝试添加另一行不起作用。因此,ListViews滚动功能也是无用的。Idk为什么会这样做,但这是我的经验。请看listview的大小不能固定。让我知道您在适配器中传递的是什么?您可以使用自定义列表适配器并将元素列表传递给它。嗯,我实际上从未想过这一点。让我试试。我会在iTunes自定义适配器类上与您联系,并通过BaseAdapter对其进行扩展,您将得到4个函数,其中一个函数是getCount(),传递您想要的值you@AkashG这正是我正在使用的。但我遇到的问题正是因为这个。当ListView下没有任何内容时,这不是问题。但显然,当有东西时,它不会调整大小。更糟糕的是,由于没有空间,尝试添加另一行不起作用。因此,ListViews滚动功能也是无用的。Idk为什么会这样做,但这是我的经验。请看listview的大小无法固定。让我知道您在适配器中传递了什么?我做了
match\u parent
,因为
fill\u parent
已被弃用,但它不起作用。同样的问题。好像这是件奇怪的事。我有一个初始列表,它有一行。这就决定了大小。当我单击添加另一行时,它失败了,因为没有空间。我以为它正好适合,但它不适合。知道为什么会这样吗?!哈哈。不过谢谢你的视频。我一定会看的。也许这有一些答案添加后您检查了适配器大小,这样您就可以知道只有视图没有出现,或者数据本身没有添加实际上是的,我知道。我不知道它的大小,但我在运行时记录了它,它完全忽略了另一行的添加。它运行并替换位置0中的任何内容,因此它确实运行,只是不会向位置1添加任何内容。但是,当您实际设置高度时,比如说
80dp
,然后执行相同的操作,可以看到位置0和1,但看不到位置2。从那次尝试和错误中,我发现除了初始创建时已有的空间之外,
ListView
不会添加更多的行。如果数据量较少,为什么不使用动态创建表布局或一些什么滚动视图..嗯,你是对的!谢谢你所做的一切。非常感谢。我会给你回复我选择的其他内容。我做了
match\u parent
,因为
fill\u parent
已被弃用,但它不起作用。同样的问题。好像这是件奇怪的事。发生的事情是我有一个首字母