2012-03-13 26 views
1

数日前に私は新しいTwitter API(バージョン3.1.1)に出会ったので、ツイートのリストで見た効果をコピーしようとしました。ListViewでViewStubを処理する方法

は、残念ながら私は新しいユーザーだと私は画像を投稿することはできませんので、私は、私はおよそ

ツイート(リストビュー)の一覧があります話しているかを説明しようとしているとあなたはと対話することができますlongKeyPressedによってそれらを返します。 クリックすると、選択したアイテムが消え、新しいアイテムが表示されます。この新しいアイテムには、選択したツイート(リツイート、お気に入りなど)の利用可能なオプションがあります。

私はこの機能のコピーを作ろうとしましたが、私には分かりません。

私が去っへのLinearLayout(「theOneWhichHasToDisappear」)の可視性を設定しようとすると、これは行

<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> 

のレイアウトで、我々はリストビューを最適化するためにViewStubを使用することを想定してみましょう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なども変更されます。

誰でもそれを行う方法を知っていますか?ありがとう

答えて

1

ViewStubとレイアウトを1つのRelativeLayoutに置くことができます。この方法ではサイズは変わりません。

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

+0

申し訳ありませんが、スタブと行レイアウトを含むRelativeLayoutを設定しても、高さはまだ変化しています!! – oroblam

+0

RelativeLayoutの高さを設定しましたか? –

+0

RelativeLayoutの高さがandroid:layout_height = "wrap_content"に設定されています – oroblam

関連する問題