如何动态设置TextView左侧的父级?

时间:2014-04-24 08:51:33

标签: android android-layout layoutparams

这是我的代码我得到错误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);

1 个答案:

答案 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