Android開發FrameLayout動態新增控制元件位置問題
阿新 • • 發佈:2019-01-25
首先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); }