Android ListView 项目对齐

标签 android listview

我有一个 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/

相关文章:

vb.net - listview平铺布局问题(vb.net)

java - WebView 中的登录保留在浏览器中

android - 如何在取消 Activity 时退出所有异步任务?

android - 移动到 Android Annotations v.2.7 后的 java.lang.ArrayStoreException : sun. reflect.annotation.TypeNotPresentExceptionProxy

flutter - 如何在 Flutter 中指定 ListTile 高度

WPF ListView 性能非常慢 - 为什么? (ElementHost,还是其他原因?)

java - 无法刷新 android 中的 ListView - notificationDataSetChanged() 不执行任何操作

android - 在 Android Studio 上 merge git 中的分支

android gradle 错误 : Can't register given path of type 'SOURCE' because it's out of content root

WPF ListView GridView DisplayMemberBinding 中心对齐内容