1. 程式人生 > >Android開發FrameLayout動態新增控制元件位置問題

Android開發FrameLayout動態新增控制元件位置問題

       首先FrameLayout的子控制元件預設都是從左上角顯示的,還有最後新增的在最前面顯示。

        一般是對FrameLayout.LayoutParams params進行操作,剛開始一直params.rightMargin來定位置,訪了第一條準則,那就換種思路來做,比如params.leftMargin

        第二個重要的點:params需要每次生成一個新的,否則它以之後改變的為準的

示例程式碼:

for(int i = 0;i < openBean.getList().size();i++){
                    //需要每次new Params,防止用的都是最後一個的設定
                    FrameLayout.LayoutParams headParams = new FrameLayout.LayoutParams(Utils.dip2px(mContext,40),Utils.dip2px(mContext,40));
                    View headGroupView = UIUtils.inflate(mContext,R.layout.circle_head_layout);
                    RelativeLayout rlHead = (RelativeLayout)headGroupView.findViewById(R.id.rl_circle_head);
                    ImageView headImage = (ImageView)headGroupView.findViewById(R.id.iv_head_small);
                    headParams.setMargins(i*Utils.dip2px(mContext,30),0,0,0);
                    headGroupView.setLayoutParams(headParams);

                    ImageLoaderUtil.loadCircular(headImage, openBean.getList().get(i).getHead_img(), mContext);
                    holder1.fl_recommend_open_user.addView(headGroupView);
                }