是否将数据ViewGroup.addView克隆LayoutParams到内部或链接到它?我可以用不同的视图重复LayoutParams使用多次调用的同一个实例吗?addView()
在 apidoc 中没有任何关于它的内容。
哇
答案是否定的(通过实验检查):
public class SymbolPadActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    RelativeLayout.LayoutParams labelParams;
    /*
     * This block to reuse is not working
    labelParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    labelParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
    labelParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
    */
    RelativeLayout mover = new RelativeLayout(this);
    TextView textView;
    for(int leftMargin = 0; leftMargin<3000; leftMargin += 100) {
        for(int topMargin=0; topMargin<800; topMargin += 40) {
            // I can't omit these 3 lines 
            labelParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            labelParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
            labelParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
            labelParams.leftMargin = leftMargin;
            labelParams.topMargin = topMargin;
            textView = new TextView(this);
            textView.setText("(" + leftMargin + "," + topMargin + ")");
            mover.addView(textView, labelParams);
        }
    }
    RelativeLayout.LayoutParams moverParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    moverParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT, RelativeLayout.TRUE);
    moverParams.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
    moverParams.leftMargin = 0;
    moverParams.topMargin = 0;
    RelativeLayout stator = new RelativeLayout(this);
    stator.addView(mover, 0, moverParams);
    setContentView(stator);
}
}