Why my custom view android takes all the space of my screen?

52 Views Asked by At

Let's take simple CustomView as an example

public class MyView extends View {

    public MyView(Context context) {
        super(context);
        super.setBackgroundColor(Color.RED);
    }

    public MyView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }
    

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawRect(20,20,220,220,new Paint());
    }

}

In my MainActivity I add my View in a LinearLayout

setContentView(R.layout.activity_main);
LinearLayout linearLayout = findViewById(R.id.linearlayout);
linearLayout.addView(new MyView(this));
linearLayout.addView(new MyView(this));

As u can see change to the background color, the first view MyView take up all the space

I want my two views to only occupy the black space. wrap_content

1

There are 1 best solutions below

0
On
setContentView(R.layout.activity_main);

LinearLayout linearLayout = findViewById(R.id.linearlayout); MyView mView = new MyView(this); mView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); linearLayout.addView(mView);