在我的程序中,我正在使用通用图像加载器。在我的列表视图中,行大小占据了我搜索过的所有屏幕,但我找不到导致它的原因所以这里是我的适配器
public class DynamicListView extends BaseAdapter {
ImageLoader imageLoader;
Context c;
String[] images= {"http://3.bp.blogspot.com/-Gsj-34Iyiio/ULEiyinE28I/AAAAAAAADPg/ISUQwGzSBMs/s1600/twitter.png",
"http://a1.mzstatic.com/us/r30/Purple6/v4/99/ee/8e/99ee8e01-f089-d549-f571-1a3797ec660d/icon_256.png" ,
"http://www.wallsave.com/wallpapers/1920x1080/forces-of-nature/1526282/forces-of-nature-1526282.jpg"};
String baslik="Bslik bla bla bla bla bla";
String icerik="Icerik bla bla bla bla bla";
ArrayList<ListViews> lists = new ArrayList<ListViews>();
DynamicListView(Context c )
{
this.c = c;
imageLoader = ImageLoader.getInstance();
for(int i= 0 ; i < 3 ; i++)
{
lists.add( new ListViews(images[i],baslik,icerik));
}
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
myViewHolder holder = null;
if(row==null)
{
LayoutInflater inflate = (LayoutInflater) c.getSystemService(c.LAYOUT_INFLATER_SERVICE);//Butun layout u inflate'in icine aldik
row = inflate.inflate(R.layout.dynamic_lists , parent , false ); //gerekli islemler
holder = new myViewHolder(row);
row.setTag(holder);
}
else
{
holder = (myViewHolder) row.getTag();
}
imageLoader.displayImage(lists.get(position).image,holder.image );
holder.baslik.setText(lists.get(position).baslik);
holder.icerik.setText(lists.get(position).icerik);
return row;
}
class myViewHolder
{
private ImageView image;
private TextView baslik;
private TextView icerik;
myViewHolder(View v)
{
this.image = (ImageView) v.findViewById(R.id.ivDynamic);
this.baslik = (TextView) v.findViewById(R.id.tvDynamic1);
this.icerik = (TextView) v.findViewById(R.id.tvDynamic2);
}
}
class ListViews
{
ListViews(String image, String baslik, String icerik)
{
this.baslik = baslik;
this.icerik = icerik;
this.image = image;
}
String image;
String baslik;
String icerik;
}
}
这是我在getView方法中使用的单行
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background">
<ImageView
android:layout_width="75dp"
android:layout_height="75dp"
android:id="@+id/ivDynamic"
android:background="#FFFFFF"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="#000000"
android:text="Baslik bla bla"
android:id="@+id/tvDynamic1"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/ivDynamic"
android:paddingLeft="10dp"
android:layout_alignParentRight="true" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#000000"
android:text="Icerik bla bla bla"
android:id="@+id/tvDynamic2"
android:layout_alignBottom="@+id/ivDynamic"
android:layout_toRightOf="@+id/ivDynamic"
android:layout_below="@+id/tvDynamic1"
android:paddingLeft="7dp"
android:layout_alignParentRight="true" />
</RelativeLayout>
任何帮助都将不胜感激。
答案 0 :(得分:5)
在RelativeLayout中设置android:layout_height="Wrap_content"
。
所以做这样的事情。
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="Wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background"> // You need to set proper size `background` image here
修改:
现在指出你的 android:background="@drawable/background"
可能有大尺寸。
所以请检查background
图片然后尝试。它可能会填满屏幕,因为您的background
图片尺寸大于屏幕尺寸。您需要在drawable中设置合适尺寸的background
图片。
答案 1 :(得分:1)
这是由于您对行的定义:
<RelativeLayout
...
android:layout_height="fill_parent"
btw fill_parent
已弃用,请改为使用match_parent
。
fill_parent表示它应该填满所有可用的屏幕,因此您可能应该使用wrap_contents
答案 2 :(得分:1)
更改相对布局
android:layout_width="wrap_content"
android:layout_height="wrap_content"
由于
答案 3 :(得分:0)
从RelativeLayout中删除fillParent选项..
答案 4 :(得分:0)
您必须使用wrap_content
创建列表行高。
喜欢这个
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:background="@drawable/background">