2012-01-28 58 views
0

我收到了包含單個列表視圖的活動。 此列表視圖顯示帶有位圖和複選框的relativeLayout,並且當沒有位圖可用時,將顯示文本。Android:ListView的行高在點擊其包含的複選框時發生變化

我的問題是不包含位圖的行。當我點擊該複選框,該行的高度變化(增加時複選框被選中,去摺痕時未選中)

activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/myListView" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:divider="@drawable/gradient_divider" 
     android:dividerHeight="1dp" /> 
</LinearLayout> 

row.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <ImageView 
     android:id="@+id/banner" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:adjustViewBounds="true" 
     android:layout_toLeftOf="@+id/registrationCheckBox" 
     android:filter="true" > 
    </ImageView> 

    <TextView 
     android:id="@+id/name" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_centerVertical="true" 
     android:layout_gravity="left" 
     android:paddingLeft="5dp" 
     android:layout_toLeftOf="@+id/registrationCheckBox" > 
    </TextView> 

    <CheckBox 
     android:id="@+id/registrationCheckBox" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true"  
     android:layout_centerVertical="true" 
     android:clickable="false" 
     android:focusable="false" 
     android:paddingRight="5dp" > 
    </CheckBox> 

</RelativeLayout> 

我活動代碼

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity); 

     hideActionBar(); 

     // init the controls 
     initControls(); 

     // populate the listView 
     this.adapter = new RegistrationAdapter(this, refreshContent());  
     this.listView.setAdapter(this.adapter); 

     this.listView.setItemsCanFocus(false); 
     this.listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     this.listView.setOnItemClickListener(
      new ListView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
         ViewHolder viewHolder = (ViewHolder) view.getTag(); 

... 
        } 
      } 
    ); 

    } 

任何有關如何防止我的行高改變點擊複選框?

回答

1

我想你錯過了這段代碼的重要部分,那就是適配器代碼。

如何處理位圖和文本之間的切換?

+0

你是完全正確的! 剛剛看到我正在使用 banner.setVisibility(hide?View.VISIBLE:View.INVISIBLE); 隱藏橫幅,而不是View.GONE ... Swithcing View.GONE做了伎倆...感謝提示! – user1026605 2012-01-29 15:32:55

0

或許設置的ImageView到一個固定的高度(高度足以適應任何實際的圖像),或提供一個虛設不可見圖像時沒有真正的圖像,以顯示。

相關問題