gpt4 book ai didi

android - 如何处理 ListView 中的 ViewStub

转载 作者:行者123 更新时间:2023-11-30 04:18:03 26 4
gpt4 key购买 nike

几天前,我遇到了新的 Twitter API(版本 3.1.1),我试图复制我在 tweets 列表中看到的效果。

不幸的是我是新用户,我不能发布图片,所以我试图解释我在说什么

有推文列表( ListView ),您可以通过 longKeyPressed 与它们进行交互。一旦单击,所选项目就会消失,并会出现一个新项目。在这个新项目中,有用于所选推文的可用选项(转推、收藏等...)

我试图制作此功能的副本,但有几个我无法弄清楚的问题。

假设我们使用 ViewStub 来优化 listView,这是行的布局

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<ViewStub
android:id="@+id/twitter_stub"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:inflatedId="@+id/twitter_actions"
android:layout="@layout/twitter_swipe_actions" />
<LinearLayout android:id="theOneWhichHasToDisappear">
.....the row of the listVIew.....
<LinearLayout>

当我尝试将 linearLayout(“theOneWhichHasToDisappear”)的可见性设置为消失时,一切都很酷,就在这里

v.findViewById(R.id.theOneWitchHasToDisappear).setVisibility(View.GONE);
//inflating the stubview
ViewStub stub = (ViewStub) v.findViewById(R.id.twitter_stub);
View inflated = stub.inflate();

但不幸的是我无法保持项目的正确高度(新充气后高度不应该改变)。否则,当我替换列表中的项目时,其他项目会发生变化!!!例如,当我点击列表的第一项(第一条推文)时,数字 1 会改变 View ,但数字 4、8、12 等也会改变!

有人知道怎么做吗?谢谢

最佳答案

你可以把ViewStub和布局放在一个RelativeLayout上,这样大小就不会改变。

其他项目的变化是关于ListView 的 View 重用。您必须检查适配器的 getView() 方法,确保仅在所选 View 上显示 stub ,而在其他 View 上您必须隐藏它。

关于android - 如何处理 ListView 中的 ViewStub,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9690657/

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