android - Background of List items is stretching more than height? -
i have listview custom adapter (tile) design. should work fine thing til (listview item background) stretches despite me giving layout_height fixed value. here's code:
this xml custom tile. notice 85dp fixed height. background drawable should not stretch beyond hight?
<?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="85dp" android:background="@drawable/tile_job" > <textview android:id="@+id/title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="9dp" android:layout_alignparentleft="true" android:layout_alignparenttop="true" android:layout_marginleft="13dp" android:text="title" /> <textview android:id="@+id/pickup" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginleft="20dp" android:layout_margintop="38dp" android:layout_alignleft="@+id/title" android:textsize="11dp" android:text="pickup address" /> <textview android:id="@+id/destination" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/pickup" android:layout_below="@+id/pickup" android:layout_margintop="6dp" android:textsize="11dp" android:text="destination address" /> <textview android:id="@+id/time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/destination" android:layout_alignparentright="true" android:layout_marginright="40dp" android:text="time" android:textsize="11dp" /> <textview android:id="@+id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/time" android:layout_below="@+id/time" android:text="date" android:layout_margintop="7dp" android:textsize="11dp" /> </relativelayout>
now i'm using in simple listview:
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/app_bg" > <relativelayout android:id="@+id/relativelayout1" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignparentleft="true" android:layout_alignparentright="true" android:layout_alignparenttop="true" android:background="@drawable/strip_top" > <textview android:id="@+id/strip_text" style="@style/topstriptext" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:layout_centervertical="true" android:text="locate" /> </relativelayout> <relativelayout android:layout_width="280dp" android:layout_height="440dp" android:layout_below="@+id/relativelayout1" android:layout_centerhorizontal="true" android:layout_margintop="15dp" android:background="@drawable/bg_booking" > <listview android:id="@+id/activebookings" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignparentleft="true" android:layout_alignparenttop="true" > </listview> </relativelayout>
what causing tile overstretch vertically?
===========
edit here requested code:
inflation of layout:
public class jobadapter extends baseadapter { private arraylist<job> bookingarraylist; private layoutinflater minflater; public jobadapter(context context, arraylist<job> results) { bookingarraylist = results; minflater = layoutinflater.from(context); } @override public int getcount() { return bookingarraylist.size(); } @override public object getitem(int arg0) { return bookingarraylist.get(arg0); } @override public long getitemid(int position) { return position; } @override public view getview(int position, view convertview, viewgroup parent) { viewholder holder; if (convertview == null) { convertview = minflater.inflate(r.layout.tile_job, null); holder = new viewholder(); holder.date = (textview) convertview.findviewbyid(r.id.date); holder.time = (textview) convertview.findviewbyid(r.id.time); holder.pickup = (textview) convertview.findviewbyid(r.id.pickup); holder.destination = (textview) convertview.findviewbyid(r.id.destination); holder.title = (textview) convertview.findviewbyid(r.id.title); convertview.settag(holder); } else { holder = (viewholder) convertview.gettag(); } holder.date.settext(bookingarraylist.get(position).getdate()); holder.time.settext(bookingarraylist.get(position).gettime()); holder.pickup.settext(bookingarraylist.get(position).getpickup()); holder.destination.settext(bookingarraylist.get(position).getdestination()); holder.title.settext(bookingarraylist.get(position).gettitle()); return convertview; } static class viewholder { textview date; textview time; textview pickup; textview destination; textview title; } }
your creating row following:
convertview = minflater.inflate(r.layout.tile_job, null);
now try this:
convertview = minflater.inflate(r.layout.tile_job, parent, false);
if don't attach parent layout layout parameters xml ignored. set false don't attach view root right away (this happens automatically when view returned). can read more issue here.
Comments
Post a Comment