以编程方式将项目置于活动中。没有XML

时间:2012-02-28 12:46:45

标签: android layoutparams

我有一个Activity,它动态添加了所有显示元素。根本没有xml的活动。

活动包含以下控件:

  1. RelativeLayout(所有子视图所在的布局对象)
  2. TextView(页面标题,位于RelativeLayout顶部)
  3. ScrollView(包含所有数据控件的可滚动区域)
  4. LinearLayout(用于保存活动按钮的布局对象)
  5. 我想知道如何定义ScrollView位于Title TextView下方和LinearLayout按钮持有者上方,其中LinearLayout设置为Activity Page bottom

    我尝试使用RelativeLayout.LayoutParams来设置规则,但似乎无法理解这样做的方法。任何帮助或教程链接都是apreciated

    我已将我的代码包含在内,以确定是否有人可以提供帮助

        // declare the items for display
        RelativeLayout baseLayout = new RelativeLayout(this);   
        // add the customer name and number field.
        // NOTE: We will always require this widget regardless of dialog design fields
        tvCustomerNameNumber = new TextView(this);
        tvCustomerNameNumber.setTextSize(20);
        tvCustomerNameNumber.setText("Customer Name & Number");
    
        // build up the linear layout of controls
        LinearLayout ll = new LinearLayout(this);
        ll.setOrientation(LinearLayout.VERTICAL);       
    
        // Scroll view.
        // NOTE: We will always need this widget to enable us to scroll the page
        // if too many items are added for the display size
        ScrollView sv = new ScrollView(this);
        sv.addView(ll);
    
        // buttons
        LinearLayout buttons = new LinearLayout(this);
        buttons.setOrientation(LinearLayout.HORIZONTAL);
    
        // button edit
        Button edit = new Button(this);
        edit.setId(EDIT_BUTTON_ID);
    
        // button save
        Button save = new Button(this);
        save.setId(SAVE_BUTTON_ID);
    
        // button cancel
        Button cancel = new Button(this);
        cancel.setId(CANCEL_BUTTON_ID);
    
        // add each button to the button layout
        buttons.addView(edit);
        buttons.addView(save);
        buttons.addView(cancel);
    
        // Scroll view Layout parameters
        RelativeLayout.LayoutParams scrollParams = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
        scrollParams.addRule(RelativeLayout.BELOW, tvCustomerNameNumber.getId());
        scrollParams.addRule(RelativeLayout.ABOVE, buttons.getId());
    
        // buttons Layout parameters
        RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        buttonParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
        buttonParams.addRule(RelativeLayout.BELOW, sv.getId());
    
        // add the customer name number field to the base layout
        baseLayout.addView(tvCustomerNameNumber);
        // add the scroll view to the base layout
        baseLayout.addView(sv); //, scrollParams);      
        // add the buttons to the base layout
        baseLayout.addView(buttons, buttonParams);
    
        // set the content view
        this.setContentView(baseLayout);
    

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

Deva已经回答了你的问题,但听起来像你可以像上面描述的那样定义一个xml布局,给它充气并以编程方式动态填充...也许布局最初会包含一个空的LinearLayout,和/或者没有为TextView设置文本,甚至可以将所有内容设置为android:visibility =“gone”并在添加/更新所有视图时显示它?