我有一个 ListView ,我可以在其中动态添加项目。我希望某些项目(我选择的)应该与左侧对齐,而一些与右侧对齐。 Android 的 ListView 可以实现这个功能吗??
//适配器
if (convertView == null) {
holder = new EventViewHolder();
if (type == 1) {
convertView = inflater.inflate(
R.layout.multi_line_list_item, null);
holder.mtvMessage = (TextView) convertView
.findViewById(R.id.tvMessage);
holder.mtvMessage.setGravity(Gravity.LEFT);
holder.mtvMessage.setBackgroundResource(R.drawable.chatbluebox);
convertView.setTag(holder);
}else{
convertView = inflater.inflate(
R.layout.multi_line_list_item, null);
holder.mtvMessage = (TextView) convertView
.findViewById(R.id.tvMessage);
holder.mtvMessage.setGravity(Gravity.RIGHT);
holder.mtvMessage.setBackgroundResource(R.drawable.chatgreenbox);
convertView.setTag(holder);
}
请让我知道是否可以完成并建议我一个好的解决方案?
最佳答案
android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
在您的 listView xml 条目中添加这些行..,.
对于右对齐和左对齐,维护两个布局 xml,一个右对齐,另一个左对齐(无论您想要什么),然后在 listAdapter 的 getView() 方法中设置一些条件并根据需要膨胀这些 xml
if (convertView == null)
if(some condition)
convertView = mInflater.inflate(R.layout.rightxml, null);
else
convertView = mInflater.inflate(R.layout.leftxml, null);
....
关于Android ListView 项目对齐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13134476/