Android ListView Adapter 稍后更改膨胀的布局



我有 3 个列表视图项目布局。通过重新打开活动,它可以在没有错误的情况下工作,但是如果我通过单击按钮添加项目,布局不会改变,因为行 != null。我希望你能用我糟糕的英语理解我。

        LayoutInflater inflater = null;
    int layout = 0;
    if(chatMessageObj.centered) {
        layout = R.layout.activity_chat_singlemessage_center;
    } else {
        layout = chatMessageObj.left ? R.layout.activity_chat_singlemessage_left : R.layout.activity_chat_singlemessage;
    }
    if (row == null) {
        inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(layout, parent, false);
    }

解决此问题的最简单方法是仅创建一个列表视图项: LinearLayout 具有vertical方向和 3 个子项:

- R.layout.activity_chat_singlemessage_left, - R.layout.activity_chat_singlemessage_center, - R.layout.activity_chat_singlemessage

并在您的getView()方法中根据给定条件显示相关布局并隐藏不应显示的布局。

最新更新