title: How do I set android:layout_columnWeight="1" programmatically to an element in an android support v7 Gridlayout
body: <p>I'm trying to build a GirdLayout programmatically with 2 columns and I want these columns to have equal width set at half the width of the screen. </p>
  
  <p>I figured out you can do this since API 21 or with the support v7 GirdLayout view. I see examples that uses android:layout_columnWeight="1" to do this. But I can not find how to do this programmatically. </p>
  
  <p>Can anyone help me with this matter?</p>
  
  <pre><code>package com.tunify.v3.component;
  
  import java.util.ArrayList;
  
  import android.support.v7.widget.GridLayout;
  import android.util.DisplayMetrics;
  import android.util.TypedValue;
  import android.view.ViewGroup;
  
  import com.tunify.asme.data.ChangeableSelectionParameterValue;
  
  public class ChangeableSelectionParameters extends GridLayout{
  
  //private ArrayList&lt;ChangeableSelectionParameterView&gt; selectionParameterViews;
  private ArrayList&lt;ChangeableSelectionParameterValue&gt; selectionParameterValues;
  
  private static final int ITEM_PADDING_LEFT_DP = 0;
  private static final int ITEM_PADDING_RIGHT_DP = 0;
  private static final int ITEM_PADDING_TOP_DP = 0;
  private static final int ITEM_PADDING_BOTTOM_DP = 0;
  
  //private static final int MUSICCOLLECTION_DISPLAY_TEXT_SIZE_SP = 15;
  
  
  public ChangeableSelectionParameters(android.content.Context context, ArrayList&lt;ChangeableSelectionParameterValue&gt; selectionParameterValues) {
      super(context);
  
      this.selectionParameterValues = selectionParameterValues;
  
      initializeLayoutBasics(context);
      initializeComponents();
  }
  
  private void initializeLayoutBasics(android.content.Context context) {
      setOrientation(VERTICAL);
      setColumnCount(2);
      setRowCount((int)Math.ceil(selectionParameterValues.size()/2.0));
  
      int width = ViewGroup.LayoutParams.MATCH_PARENT;
      int height = ViewGroup.LayoutParams.WRAP_CONTENT;
      android.view.ViewGroup.LayoutParams layoutParams = new android.view.ViewGroup.LayoutParams(width, height);
      this.setLayoutParams(layoutParams);
  
      DisplayMetrics metrics = getResources().getDisplayMetrics();
  
      int paddingLeftPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ITEM_PADDING_LEFT_DP, metrics);
      int paddingRightPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ITEM_PADDING_RIGHT_DP, metrics);
      int paddingTopPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ITEM_PADDING_TOP_DP, metrics);
      int paddingBottomPx = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ITEM_PADDING_BOTTOM_DP, metrics);
      setPadding(paddingLeftPx, paddingTopPx, paddingRightPx, paddingBottomPx);
  
  }
  
  private void initializeComponents() {
  
      for(ChangeableSelectionParameterValue param : this.selectionParameterValues){
          ChangeableSelectionParameterView v = new ChangeableSelectionParameterView(getContext(), param);
          //TODO set views layout column weight to 1
          this.addView(v);
      }
   }
  }
  </code></pre>
  
  <p>SOLUTION:</p>
  
  <pre><code> GridLayout.LayoutParams parem = new LayoutParams(GridLayout.spec(GridLayout.UNDEFINED, 1f),      GridLayout.spec(GridLayout.UNDEFINED, 1f));
   v.setLayoutParams(parem);
  </code></pre>