我有以下ListView:
<ListView android:id="@android:id/list" android:layout_width="fill_parent" android:divider="@drawable/line"
android:layout_height="fill_parent" android:background="@drawable/bg"/>
但我想为每个行项设置背景。当我设置android:background属性时,我改变了整个列表的背景而不仅仅是每一行的背景。
如何为行中的每个项目设置可绘制背景?我尝试了一切。我唯一能改变的是行之间显示的android:divider drawable。 提前谢谢!
答案 0 :(得分:0)
您需要为行指定costum视图布局,例如LinearLayout等。 在此布局中,您可以指定背景颜色或图像,或者指定任何颜色。
稍后在getView()函数的列表适配器中加载此布局 这种观点使布局变得更加充实。
答案 1 :(得分:0)
*Use Custom Adapter.
First create Custom Adapter class and set this to fill listView
ex:
class CusAdapter extends BaseAdapter
{
private Context mContext;
public ImageAdapter(Context c)
{
mContext = c;
}
public int getCount()
{
return 10;
}
public Object getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent)
{
//create a layout for listView
LinearLayout lLayout = new LinearLayout(this);
lLayout.setOrientation(LinearLayout.VERTICAL);
lLayout.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
//check position and set background
if(position%2==0)
{
lLayout.setBackgroundResource(R.id.bckResource1);
}
else
lLayout.setBackgroundResource(R.id.bckResource2);
return lLayout;
}
}
after this set this adapter to fill listview
listView.setAdpater(new cusAdapter(this));*