以线性布局编程方式移动布局位置

 天生好客2602916983_826 发布于 2023-02-06 09:06

我有以下xml:




    
        
        
    

我想做的是让我的ImageView的位置以编程方式更改到textMessage的左侧.

这可以通过将我的ImageView放在TextView上方通过xml完成​​.但是我想以编程方式实现相同的结果.

假设我的适配器中有这个:

public View getView(int position, View convertView, ViewGroup parent) {

    View row = convertView;
    if (row == null) {
            LayoutInflater inflater = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            row = inflater.inflate(R.layout.chat_item, parent, false);
    }

    wrapper = (LinearLayout) row.findViewById(R.id.wrapper);

    // How should I change the position of my ImageView ??
    wrapper.setGravity([some_condition] ? Gravity.LEFT : Gravity.RIGHT);

    return row;
}

saa.. 10

试试这样....

ImageView imageView= (ImageView)yourLinearLayout.findViewById(R.id.thumbPhoto);
yourLinearLayout.removeViewAt(1);
yourLinearLayout.addView(0, imageView);

通过使用此行

// How should i change the position of my ImageView ??
        wrapper.setGravity([some_condition] ? Gravity.LEFT : Gravity.RIGHT);

它显示没有效果.因为在这里你将重力应用于线性布局,这种重力将其整个内容左右对齐.

1 个回答
  • 试试这样....

    ImageView imageView= (ImageView)yourLinearLayout.findViewById(R.id.thumbPhoto);
    yourLinearLayout.removeViewAt(1);
    yourLinearLayout.addView(0, imageView);
    

    通过使用此行

    // How should i change the position of my ImageView ??
            wrapper.setGravity([some_condition] ? Gravity.LEFT : Gravity.RIGHT);
    

    它显示没有效果.因为在这里你将重力应用于线性布局,这种重力将其整个内容左右对齐.

    2023-02-06 09:09 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有