2011-12-16 16 views
1

Androidリストビューに問題があります。私のリストは、メッセージイメージのためのonClickListenerを設定するカスタム配列アダプタを使い、リストにはonItemClickListenerがあります。それはすべて正常に動作しますが、下のスクリーンショットで見ることができるように、画像は親を埋めるものではありません。 画像の上、下、または右をクリックすると、onItemClickListenerが呼び出されます。Androidリストビュー行パディング/マージン

私の希望は、2つのセクションで行を完全に分割することです。そして、私はこれに対する解決策がList.xmlのrow.xmlまたはXMLにあると考えています。行全体をイメージで埋めるにはどうすればいいですか?

The Screen Shot

row.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
android:padding="6dip" 
android:background="@drawable/listitem_background" 
android:id="@+id/row2"> 
<ImageView 
    android:id="@+id/icon" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_marginRight="6dip" 
    android:src="@drawable/logominimini" /> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="0dip" 
    android:layout_weight="1" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:id="@+id/toptext" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:singleLine="true" 
     android:textColor="@color/darkgreen" 
     android:textStyle="bold" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
    /> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:id="@+id/bottomtext" 
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:textColor="@color/black" 
    /> 
</LinearLayout> 
    <TextView 
     android:id="@+id/divider" 
     android:layout_width="3dp" 
     android:layout_height="fill_parent" 
     android:background="@drawable/divider_background" 
     android:visibility="gone"/> 
<ImageView 
    android:id="@+id/selectmessage" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_centerVertical="true" 
    android:visibility="visible" 
    android:paddingRight="20dp" 
    android:paddingLeft="40dp" 
    android:background="@drawable/listitem_background" 
    android:layout_marginLeft="0dip" 
    android:layout_marginRight="0dip" 
    android:layout_gravity="center_vertical" 
    android:src="@drawable/messageunselected" /> 

    </LinearLayout> 

リストビュー:

<ListView 
android:id="@+id/android:list" 
android:fastScrollEnabled="true" 
android:listSelector="@drawable/listitem_background" 
android:layout_height="wrap_content" 
android:layout_width="fill_parent"></ListView> 

答えて

4

ImageViewの中や他の場所ではなく、親LinearLayoutに入れて、コメントプロパティandroid:padding="6dip"を削除します。

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="?android:attr/listPreferredItemHeight" 
<!-- remove this: android:padding="6dip" --> 
android:background="@drawable/listitem_background" 
android:id="@+id/row2"> 
<ImageView 
    android:id="@+id/icon" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_marginRight="6dip" 
    android:src="@drawable/logominimini" /> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="0dip" 
    android:layout_weight="1" 
    android:layout_height="fill_parent"> 
    <TextView 
     android:id="@+id/toptext" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:singleLine="true" 
     android:textColor="@color/darkgreen" 
     android:textStyle="bold" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
    /> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:id="@+id/bottomtext" 
     android:singleLine="true" 
     android:ellipsize="marquee" 
     android:textColor="@color/black" 
    /> 
</LinearLayout> 
    <TextView 
     android:id="@+id/divider" 
     android:layout_width="3dp" 
     android:layout_height="fill_parent" 
     android:background="@drawable/divider_background" 
     android:visibility="gone"/> 
<ImageView 
    android:id="@+id/selectmessage" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_centerVertical="true" 
    android:visibility="visible" 
    android:paddingRight="20dp" 
    android:paddingLeft="40dp" 
    android:background="@drawable/listitem_background" 
    android:layout_marginLeft="0dip" 
    android:layout_marginRight="0dip" 
    android:layout_gravity="center_vertical" 
    android:src="@drawable/messageunselected" /> 

    </LinearLayout> 
+1

ありがとうございます。私は例からレイアウトを得て以来、その詳細を見逃していました。結果は、私が望んだとおりです:http://dl.dropbox.com/u/24622131/device-2011-12-16-124434.png –

+0

問題を解決した場合、答えを受け入れるのを忘れないでください! :) –

+0

申し訳ありませんが、私はこれに新しいです。あなたの助けをもう一度ありがとう! –

0

行全体を塗りたい画像最初の画像または最後の画像

両方のImageViewについて、あなたはパディングを続けていましたが、それらがどのようにして親を埋めることができますか?

コードを一度確認してください。また、質問も明確ではありません。

私はあなたのスクリーンショットを見ました。私はあなたが第2のイメージビューについて話していると思っていました。

もしそうなら、ImageViewでパディングを削除してください。

私はそれがあなたを助けると思う。

関連する問題