2012-03-13 1 views
1

며칠 전에 새로운 Twitter API (버전 3.1.1)가 나왔고 트윗 목록에서 본 효과를 복사하려고했습니다.ListView에서 ViewStub를 처리하는 방법

는 불행하게도, 난 새로운 사용자 그리고 난 이미지를 게시 할 수 없습니다, 그래서 내가 약

트윗 (목록보기)의 목록이 있습니다 무슨 말인지 설명하기 위해 노력하고있어 당신이와 상호 작용할 수 있습니다 그들에 의해 longKeyPressed. 클릭하면 선택한 항목이 사라지고 새 항목이 나타납니다. 이 새 항목에는 선택한 트윗 (리트 윗, 즐겨 찾기 등)에 사용할 수있는 옵션이 있습니다.

이 기능의 복사본을 만들려고했으나 알아낼 수없는 몇 가지 문제가 있습니다. .

의 우리가 목록보기를 최적화하기 위해 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 등도 변경됩니다.

누구나 방법을 알고 있습니까? 감사합니다.

답변

1

ViewStub 및 레이아웃을 하나의 RelativeLayout에 넣을 수 있습니다.이 방법은 크기가 변경되지 않습니다.

다른 항목의 변경 사항은 ListView에서의보기 재사용에 관한 것입니다. 어댑터의 getView() 메소드에서 선택보기에서만 스텁을 표시하고 나머지는 숨겨야한다는 것을 확인해야합니다.

+0

미안하지만 스텁과 행 레이아웃이 포함 된 RelativeLayout을 설정하더라도 높이가 계속 변경됩니다 !! – oroblam

+0

RelativeLayout에서 높이를 설정 했습니까? –

+0

RelativeLayout의 높이가 android : layout_height = "wrap_content"로 설정되었습니다. – oroblam