我有一个XML(absolutelayout)模板,我希望我的ListView项目看起来像。
将这些项目添加到ListView的最佳方法是什么?
On,还有一件事,我如何从java更改ListView的高度?
谢谢! :)
答案 0 :(得分:2)
<ListView android:id="@+id/list" android:layout_width="fill_parent"
android:layout_height="0dip" android:focusable="false" android:layout_weight="1" />
<TextView android:id="@+id/empty" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:gravity="center"
android:text="Loading" android:visibility="invisible" />
</LinearLayout>
这就是我要添加您的商品VIEWS的意思。然后用数据填充您的项目。
通过修改Layout.Params
答案 1 :(得分:0)
制作一个像这样的列表视图适配器,(联系人列表的样本)
public class ContactListAdapter extends ArrayAdapter<Contact>
{
private int resource;
public ContactListAdapter(Context context, int resource, List<Contact> items)
{
super(context, resource, items);
this.resource = resource;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder = null;
LinearLayout contactListView;
if (convertView == null)
{
contactListView = new LinearLayout(getContext());
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater layoutInflater;
layoutInflater = (LayoutInflater) getContext().getSystemService(inflater);
layoutInflater.inflate(resource, contactListView, true);
holder = new ViewHolder();
holder.textViewName = (TextView) contactListView.findViewById(R.id.name);
holder.textViewAddress = (TextView) contactListView.findViewById(R.id.address);
contactListView.setTag(holder);
}
else
{
contactListView= (LinearLayout) convertView;
holder = (ViewHolder) contactListView.getTag();
}
Contact item = getItem(position);
holder.textViewName.setText(item.getName());
holder.textViewAddress.setText(item.getAddress());
return contactListView;
}
protected static class ViewHolder
{
TextView textViewName;
TextView textViewAddress;
}
}
将此适配器设置为列表视图。将xml布局的资源ID传递给此适配器。它会从xml中收缩视图并将其添加到列表视图中。
您还可以在适配器的上述 getView()方法中调整listview项的高度。使用 LayoutParams ofcourse。