【问题标题】:Align by Parent on programmatically generated elements在以编程方式生成的元素上按父对齐
【发布时间】:2014-10-12 01:29:31
【问题描述】:

所以我在循环中以编程方式创建标题和输入字段。就像下面的代码一样,所有的元素看起来都叠在一起:

    RelativeLayout mRlayout = (RelativeLayout) findViewById(R.id.checkFieldsLayout);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.MATCH_PARENT,
            RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    Bundle extras = getIntent().getExtras();
    List<String> fields = extras.getStringArrayList("checkList");

    for (int i = 0; i < fields.size(); i++) {
        TextView header = new TextView(this); // Pass it an Activity or Context
        header.setText(fields.get(i).toString());
        header.setLayoutParams(params);
        EditText field = new EditText(this);
        field.setLayoutParams(params);
        mRlayout.addView(header);
        mRlayout.addView(field);
    }   

如何以编程方式布置这些元素,使它们与屏幕的宽度相匹配,并将一个停靠在另一个下方?谢谢!

【问题讨论】:

    标签: java android xml android-edittext textview


    【解决方案1】:

    试试这个:

    RelativeLayout mRlayout = (RelativeLayout) findViewById(R.id.checkFieldsLayout);
    Bundle extras = getIntent().getExtras();
    List<String> fields = extras.getStringArrayList("checkList");
    
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
         RelativeLayout.LayoutParams.MATCH_PARENT,
         RelativeLayout.LayoutParams.WRAP_CONTENT);
    params.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    
    
    TextView header1 = new TextView(this); // Pass it an Activity or Context
    header.setText(fields.get(0).toString());
    header.setLayoutParams(params);
    header1.setId(0);
    
    RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
         RelativeLayout.LayoutParams.MATCH_PARENT,
         RelativeLayout.LayoutParams.WRAP_CONTENT);
    params2.addRule(RelativeLayout.BELOW,0);
    
    EditText field1 = new EditText(this);
    field.setLayoutParams(params2);
    field1.setId(fields.size());
    
    mRlayout.addView(header);
    mRlayout.addView(field);
    
    for (int i = 1; i < fields.size(); i++) {
        RelativeLayout.LayoutParams params1 = new RelativeLayout.LayoutParams(
             RelativeLayout.LayoutParams.MATCH_PARENT,
             RelativeLayout.LayoutParams.WRAP_CONTENT);
        params2.addRule(RelativeLayout.BELOW,fields.size()+i -1);
    
        TextView header = new TextView(this); // Pass it an Activity or Context
        header.setText(fields.get(i).toString());
        header.setId(i);
        header.setLayoutParams(params1);
    
        RelativeLayout.LayoutParams params2 = new RelativeLayout.LayoutParams(
             RelativeLayout.LayoutParams.MATCH_PARENT,
             RelativeLayout.LayoutParams.WRAP_CONTENT);
        params2.addRule(RelativeLayout.BELOW, i);
    
        EditText field = new EditText(this);
        field.setLayoutParams(params2);
        field.setId(fields.size()+i);
    
        mRlayout.addView(header);
        mRlayout.addView(field);
    }  
    

    【讨论】:

      猜你喜欢
      • 2017-06-05
      • 1970-01-01
      • 2021-10-30
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 1970-01-01
      • 2011-09-03
      • 2021-08-20
      相关资源
      最近更新 更多