1

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

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

有推文列表(列表视图),您可以通过 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>  

当我尝试将线性布局(“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 会改变视图,但数字 4、8、12 等也会改变!

有谁知道该怎么做?谢谢

4

1 回答 1

1

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

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

于 2012-03-13T19:56:54.003 回答