几天前,我遇到了新的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>
当我尝试将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等也会改变!
有谁知道怎么做?谢谢
答案 0 :(得分:1)
您可以将ViewStub和布局放在一个RelativeLayout上,这样大小就不会改变。
其他项目的更改是关于ListView的视图重用。您必须检查适配器的getView()方法,该方法仅在所选视图上显示存根,而在其他视图上则必须隐藏它。