这是我的代码我得到错误params是null
viewDynamic = new TextView(getApplicationContext());
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relative);
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)viewDynamic.getLayoutParams();
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
params.addRule(RelativeLayout.ABOVE,userEditTxt.getId());
viewDynamic.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
viewDynamic.setText(userEditTxt.getText());
viewDynamic.setTextColor(Color.RED);
viewDynamic.setTextScaleX(2);
viewDynamic.setTextSize(20);
viewDynamic.setPadding(10, 10, 10, 10);
//viewDynamic.setVisibility(View.GONE);
relativeLayout.addView(viewDynamic,params);
答案 0 :(得分:1)
如果您还没有将视图添加到任何父容器,或者没有手动调用setLayoutParams,那么getLayoutParams()将返回null。
在您致电viewDynamic.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
之前致电viewDynamic.getLayoutParams();
,或者将视图添加到容器中,以便为视图生成LayoutParams。
我建议你像这样添加你的视图:
viewDynamic = new TextView(getApplicationContext());
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relative);
RelativeLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
params.addRule(RelativeLayout.ABOVE,userEditTxt.getId());
viewDynamic.setText(userEditTxt.getText());
viewDynamic.setTextColor(Color.RED);
viewDynamic.setTextScaleX(2);
viewDynamic.setTextSize(20);
viewDynamic.setPadding(10, 10, 10, 10);
relativeLayout.addView(viewDynamic,params);//you attach params to your View here