我正在一个应用程序中开发一个聊天模块,我希望来自两个参与者的消息以相反的对齐方式(其他用户左对齐,我自己的消息右对齐)。现在,我的行布局是通过静态布局 xml 传入的(消息和头像左对齐)。有没有办法动态修改视图,或者有没有办法传递替代行布局供 UI 系统在运行时选择?
你可以在里面这样做getView()
你的方法阵列适配器类(假设您正在定义自己的ArrayAdapter
).
你可以有这样的东西:
private class YourAdapter extends ArrayAdapter<Message> {
private final LayoutInflater mLayoutInflater;
YourAdapter(YourListActivity activity) {
super(mContext, 0);
mLayoutInflater = LayoutInflater.from(activity);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
// Inflate your view
convertView = mLayoutInflater.inflate(R.layout.list_view_item, parent, false);
mViewHolder = new ViewHolder();
mViewHolder.avatar = (ImageView) convertView.findViewById(R.id.placeholder);
mViewHolder.message = (TextView) convertView.findViewById(R.id.message);
convertView.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) convertView.getTag();
}
final Message message = getItem(position);
mViewHolder.message.setText(message.getMessage());
// etc. Manipulate your views as you wish
return convertView;
}
}
private static class ViewHolder {
TextView message;
ImageView avatar;
}
getView
每次您都会接到电话ListView
被修改(例如当您滚动或向其中添加新元素时),因此您可以操作每一行
如你所愿。
不要忘记设置阵列适配器ListView
到该类的一个实例。
listView.setListAdapter(new mYourAdapter);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)