1

数日前、新しいTwitter API(ver。3.1.1)に出くわし、ツイートリストに表示された効果をコピーしようとしました。

残念ながら、私は新しいユーザーであり、画像を投稿することができないので、私が話していることを説明しようとしています

ツイートのリスト(リストビュー)があり、longKeyPressedでそれらを操作できます。クリックするとすぐに、選択したアイテムが消え、新しいアイテムが表示されます。この新しいアイテムには、選択したツイートに使用できるオプションがあります(リツイート、お気に入りなど)。

この機能のコピーを作成しようとしましたが、理解できない問題がいくつかあります。

listViewを最適化するためにViewStubを使用すると仮定します。これは、行のレイアウトです。

<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")の可視性を設定しようとすると、everithingがクールになります。

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とレイアウトを1つのRelativeLayoutに配置できます。これにより、サイズは変更されません。

他のアイテムの変更は、ListViewによるビューの再利用に関するものです。アダプタのgetView()メソッドをチェックする必要があります。選択したビューでのみスタブを表示し、他のビューでは非表示にする必要があります。

于 2012-03-13T19:56:54.003 に答える