Android Linear Layout Weight Programmatically

后端 未结 4 1991
忘掉有多难
忘掉有多难 2020-12-09 15:47

I want to add three linear layouts to an activity programatically each of same width. the problem is i am not able to set the weights of these layouts programmatically. I co

相关标签:
4条回答
  • 2020-12-09 16:11

    Use new LinearLayout.LayoutParams(int width, int height, float weight) to set weights when setting layout params to the subviews

    0 讨论(0)
  • 2020-12-09 16:12

    You can do it by setting layout weight property for your individual linear layouts, pass it in LinearLayout - LayoutParams constructor:

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParam(
                             LayoutParams.MATCH_PARENT,
                             LayoutParams.MATCH_PARENT, 1);
    

    or

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                             0,
                             LayoutParams.MATCH_PARENT, 1);
    

    Hope it may help you !

    0 讨论(0)
  • 2020-12-09 16:20

    Here its the solution

        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
        lp.weight = 1;
    

    See Full Solution

    LinearLayout ll1, ll2, ll3;
        /* Find these LinearLayout by ID 
         i.e ll1=(LinearLayout)findViewById(R.id.ll1);
         */
    
        LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
        lp.weight = 1;
        ll1.setLayoutParams(lp);
        ll2.setLayoutParams(lp);
        ll3.setLayoutParams(lp);
    
    0 讨论(0)
  • 2020-12-09 16:27

    Do this way..

    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txtNote = (LinedEditText) findViewById(R.id.txtNote);
        lnr = (LinearLayout) findViewById(R.id.lnr);
        LinearLayout l1 = new LinearLayout(this);
        LinearLayout l2 = new LinearLayout(this);
        LinearLayout l3 = new LinearLayout(this);
        l1.setBackgroundResource(android.R.color.holo_green_light);
        l2.setBackgroundResource(android.R.color.holo_orange_dark);
        l3.setBackgroundResource(android.R.color.holo_blue_bright);
    
        LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1);
        lnr.addView(l1, param);
        lnr.addView(l2, param);
        lnr.addView(l3, param);
    
    }
    
    0 讨论(0)
提交回复
热议问题