动态更改 ListView 的行布局

2024-05-04

我正在一个应用程序中开发一个聊天模块,我希望来自两个参与者的消息以相反的对齐方式(其他用户左对齐,我自己的消息右对齐)。现在,我的行布局是通过静态布局 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(使用前将#替换为@)

动态更改 ListView 的行布局 的相关文章

随机推荐

  • 定期递归调用函数

    所以我想知道定期递归调用函数的更好方法 就堆栈增长和性能而言 是什么 例如 假设我想每 200 毫秒读取一次文件内容 我有以下两种方法 想知道它们是否有什么不同 方法 1 使用普通的 ols setTimeout 而不使用 process
  • 项目引用 .net core 类库时出现问题

    我创建了新的 asp net core Web 应用程序和 net core 类库 然后我尝试从 asp net core 添加对 net core 类库的引用 构建正常 但不可见 任何想法 任何想法 Yes this https stac
  • “值错误:元素定位器与任何元素都不匹配。”当尝试定位一个元素时

    我使用 Robot Framework 和 Selenium2Library 进行网站测试自动化 我的 HTML 值是
  • 在实体框架中映射自定义数据库值函数

    我有一个简单的数据库函数 它需要两个字符串作为参数并返回一个字符串 我想用实体框架来映射它 如同这个问题 https stackoverflow com questions 45451383 dbfunction cannot be tra
  • CSS - 显示:无;不工作

    我正在尝试开发一个移动样式表 在这个样式表中我想删除一个特定的 div 在div的HTML代码中 我放置了一个名为 tfl 的id 如下所示 div style display block width 187px height 260px
  • 如何创建 Azure Mgmt 序列化器/反序列化器参数?

    我可以在最新的 azure mgmt media 和 Python 存储 sdk 中看到 用户需要为序列化器 反序列化器传递 2 个参数 我的 Python 经验很少 我不知道如何创建这些对象 我找不到任何媒体示例 也没有带有最新签名 3
  • 使用反射将 Nullable 属性复制到非 Nullable 版本

    我正在编写代码以使用反射将一个对象转换为另一个对象 它正在进行中 但我认为它可以归结为以下内容 我们相信这两个属性具有相同的类型 private void CopyPropertyValue object source string sou
  • 如何引用 Cypress 配置文件中的环境变量?

    我读了赛普拉斯中的环境变量 https www toolsqa com cypress environment variables in cypress 以及有关在 Cypress 运行中传递环境变量的其他文章 但是 如何引用 JSON 配
  • 如何检测Windows 8.1开始菜单?

    当我们在 Windows 8 1 上按下开始菜单时 它会以磁贴的形式显示所有新的开始菜单以及应用程序 该菜单显示在整个屏幕上 有没有办法检测这个菜单是否在 C 中打开 8 1 SDK 中是否有 winAPI 可以执行此操作 提前致谢 调用
  • 是否有可能成为内置类型的虚拟子类?

    是否可以使用户定义的类型成为Python中内置类型的虚拟子类 我希望我的班级被视为以下类别的子类int 但是 我don t想像这样直接继承 class MyInt int Do some stuff kind of like an int
  • 如何在 C# 中从 TabPage 获取控件?

    我有几个选项卡页 每个选项卡页都包含富文本框 如何在选定的选项卡上访问 richtechbox TabPage selectedTab tabControl SelectedTab RichTextBox selectedRtb selec
  • 使用lxml解析HTML时如何保留名称空间信息?

    gt gt gt from lxml etree import HTML tostring gt gt gt tostring HTML
  • 如何在 BigQuery 中取消透视?

    不确定要调用什么函数 但转置是我能想到的最接近的函数 I have a table in BigQuery that is configured like this 但我想查询一个配置如下的表 创建此表的 SQL 代码是什么样的 Thank
  • 在我的 FirebaseRecyclerAdapter 方法中,我看不到 populateviewholder 方法未实现

    我想从 firebase 检索数据 当我添加 FirebaseRecyclerAdapter 方法时 populateviewholder 方法没有实现而不是这个 另外两个 onCreateViewHoldermethod onBind 方
  • API 版本 Android Studio 预览中为 Null

    我从 Android Studio 2 3 更新到 3 0 现在 XML 编辑器上的任何预览都不会显示 我可以在 API 级别选择器的顶部栏中看到一个 null 它没有给我任何选择的选项 有什么可能的解决方案吗 我尝试了使缓存无效并重新启动
  • SQL Server:是否可以同时插入两个表?

    我的数据库包含三个表 称为Object Table Data Table and Link Table 链接表仅包含两列 对象记录的标识和数据记录的标识 我想从中复制数据DATA TABLE它链接到一个给定的对象标识并将相应的记录插入到Da
  • App Engine gzip 压缩

    我正在尝试对来自 GAE 服务器的响应进行 gzip 压缩 但在内容编码中收到空值 我有以下代码 connection HttpURLConnection url openConnection connection setRequestMe
  • Jquery - 限制文本输入中的文本,而不是文本区域

    使用 jquery 如何限制可以在文本字段中输入的字符数 不是指文本区域 只是一个普通的文本输入字段 我有一个表单 并通过 iPad 使用 IOS5 进行查看 由于某种原因 maxlength 属性被忽略 如果我使用 maxlength 1
  • 在 Mac 上使用 dotnet core/vs code web api 时,Kestrel 出现自签名证书错误

    我正在尝试遵循this https learn microsoft com en us aspnet core fundamentals servers kestrel view aspnetcore 3 1文档中的 替换配置中的默认证书
  • 动态更改 ListView 的行布局

    我正在一个应用程序中开发一个聊天模块 我希望来自两个参与者的消息以相反的对齐方式 其他用户左对齐 我自己的消息右对齐 现在 我的行布局是通过静态布局 xml 传入的 消息和头像左对齐 有没有办法动态修改视图 或者有没有办法传递替代行布局供