gpt4 book ai didi

android - 在 Android 中查看时调整 ListView 元素的大小?

转载 作者:行者123 更新时间:2023-11-29 21:11:31 24 4
gpt4 key购买 nike

我想做的是用可以是 TextView / ImageView 的 View /元素填充 ListView 。潜在地,这些 TextView 是可扩展的。如果扩展了 TextView ,我希望 ListView 调整大小并包装内容。

已经有几种解决方案:1.让ListView元素的元素不可见,这样ListView中的view就已经是你想要的大小了。在这种情况下,使用原始长字符串创建 TextView ,然后折叠它。2. 调整适配器中元素的大小,然后调用 notifyDataSetChanged();

但是我正在寻找一种解决方案,其中 ListView 中的 View 会自动调整大小,即使它是可见的。我已尝试使用解决方案 #2,虽然它适用于更改 View 内的值(例如字符串),但它不会完全调整 View 的大小,除非 View 从屏幕上滚动然后返回到 View 中。

我的代码的相关部分如下:

holder.text.setTrim(!holder.text.getTrim());
holder.text.setText();
holder.text.requestFocusFromTouch();
notifyDataSetChanged();
holder.text.invalidate();
vi.invalidate();
vi.requestLayout();

我将它放在适配器的 getView 函数中的 OnClickListener 中。

谁有解决办法?

附言。有没有人试过用多个适配器做一个方法?这个对我来说似乎不太适用,因为我可能有数百个元素。

编辑:所以我提出了一个绝对荒谬的愚蠢解决方案的一部分。这种行为毫无意义。下面(primaryTextView 与上面的文本相同,eg.holder.primaryTextView == holder.text)

holder.primaryTextView.setTrim(!holder.primaryTextView.getTrim());
if(!holder.primaryTextView.getTrim()){
holder.primaryTextView.setVisibility(View.GONE);
}
else{
holder.primaryTextView.setVisibility(View.VISIBLE);
}
notifyDataSetChanged();
vi.invalidate();

这允许您在查看 View 时展开 View ,但不允许您在折叠文本后缩小 View 。此外,View.GONE 和 View.VISIBLE 不可互换。最后,即使触发了 View.GONE,textView 也不会消失。也许这可能是一个线索?

最佳答案

it doesn't resize the view altogether unless the view is scrolled off screen then comes back into view.

它正在工作,但您没有刷新 ListView ,当您滚动并返回时, ListView 重新创建更新后的 View 。

你应该notifyDataSetChanged(); adapter.notifyDataSetChanged();

关于android - 在 Android 中查看时调整 ListView 元素的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22655707/

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