Search code examples
javaandroidandroid-constraintlayout

set percent width constraintlayout Android programmatically


For constraint layout v1.1.x in Android we can set height and width as percentage. Similarly, need to set view width and height as percent in Android programmatically: for example, this code is written in xml for some constraint layout:

<!-- the widget will take 40% of the available space -->
    app:layout_constraintWidth_default="percent"
    app:layout_constraintWidth_percent="0.4"

what will be its java code for doing it runtime?


Solution

  • You need to use ConstraintSet - Reference

    This class allows you to define programmatically a set of constraints to be used with ConstraintLayout. It lets you create and save constraints, and apply them to an existing ConstraintLayout. ConstraintsSet can be created in various ways:

    mConstraintLayout = (ConstraintLayout) findViewById(R.id.myconstraint_layout)
    
    ConstraintSet set = new ConstraintSet();
    
    // Add constrains - Here R.id.myconstraint_layout is the Id of your constraint layout
    set.constrainPercentHeight(R.id.myconstraint_layout, 0.4);
    set.constrainPercentWidth(R.id.myconstraint_layout, 0.4);
    
    // Apply the changes - mConstraintLayout is reference to the desired view
    set.applyTo(mConstraintLayout); 
    

    You can call those height width percentage methods on this set

    And apply those constraints to your Constraint Layout like this

    set.applyTo(mConstraintLayout);