Back

Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in Java by (4k points)

I'm trying to use Java (not XML) to create a LinearLayout with buttons that fill the screen, and have margins. Here is code that works without margins:

LinearLayout buttonsView = new LinearLayout(this);

buttonsView.setOrientation(LinearLayout.VERTICAL);

for (int r = 0; r < 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);

So that works fine, but how on earth do you give the buttons margins so there is space between them? I tried using LinearLayout.MarginLayoutParams, but that has no weightmember so it's no good. And it doesn't work if you pass it lpin its constructor either.

Is this impossible? Because it sure looks it, and it wouldn't be the first Android layout task you can only do in XML.

1 Answer

0 votes
by (119k points)

You can try this code to create a LinearLayout with buttons that fill the screen and have margins:

 LayoutParams params = new LayoutParams(

            LayoutParams.WRAP_CONTENT,      

            LayoutParams.WRAP_CONTENT

    );

    params.setMargins(left, top, right, bottom);

    yourbutton.setLayoutParams(params);

If you want to learn Java from the top experts, then check out this Java EE Certification Course by Intellipaat.

Related questions

0 votes
1 answer
0 votes
1 answer
0 votes
1 answer
0 votes
1 answer

Browse Categories

...