title: Set margins in a LinearLayout programmatically
body: <p>I'm trying to use Java (<em>not XML</em>) to create a LinearLayout with buttons that fill the screen, and have margins. Here is code that works without margins:</p>
  
  <pre><code>LinearLayout buttonsView = new LinearLayout(this);
  buttonsView.setOrientation(LinearLayout.VERTICAL);
  for (int r = 0; r &lt; 6; ++r) {
      Button btn = new Button(this);
      btn.setText("A");
  
      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT); // Verbose!
      lp.weight = 1.0f; // This is critical. Doesn't work without it.
      buttonsView.addView(btn, lp);
  }
  
  ViewGroup.LayoutParams lp = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
  setContentView(buttonsView, lp);
  </code></pre>
  
  <p>So that works fine, but how on earth do you give the buttons margins so there is space between them? I tried using <code>LinearLayout.MarginLayoutParams</code>, but that has no <code>weight</code> member so it's no good. And it doesn't work if you pass it <code>lp</code> in its constructor either.</p>
  
  <p>Is this impossible? Because it sure looks it, and it wouldn't be the first Android layout task you can only do in XML.</p>