代码中动态设置相对布局里控件的位置

 
  
  RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageButtonCursor.getLayoutParams();
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, R.id.imageButtonCursor);
 
  
设置imageButtonCursor在底部(因为之前此控件是依附A控件来设定位置的,根据需求A控件要隐藏掉,当A控件隐藏的时候,imageButtonCursor会跑位,所以要这样动态设置)
这里要说名的是 imageButtonCursor的父布局是RelativeLayout 否则getLayoutParams强转会报错的 
  
 
  
 
  
 RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageButtonCursor.getLayoutParams();
        //因为对SDK要求17以上 所以放弃此方法
        //layoutParams.removeRule(RelativeLayout.ALIGN_PARENT_BOTTOM);     //这里需要清除掉之前设置的位置 否则不生效
        layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);
        layoutParams.addRule(RelativeLayout.ABOVE, R.id.horizontalScrollView1);

R.id.horizontalScrollView1为A控件(根据需求此时A控件要显示)显示出来后
imageButtonCursor有要根据A控件去找位置 因为之前设置imageButtonCursor显示在底部 如果不清除这个位置则 设置的相对位置则是无效的 17以上可以用removeRule的方法 为了兼容只能用
layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, 0);

你可能感兴趣的:(android开发)