为什么我的自定义视图android占用了我屏幕的所有空间?

bnl4lu3b  于 2022-12-02  发布在  Android
关注(0)|答案(1)|浏览(104)

让我们以简单的CustomView为例

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());
    }

}

在我的MainActivity中我把我的View加到一个LinearLayout

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

正如你可以看到改变到背景颜色,第一个view MyView占用了所有的空间

我希望我的两个views只占用黑色空间。wrap_content

xzv2uavs

xzv2uavs1#

setContentView(R.layout.activity_main);

线性布局= findViewById(R.标识线性布局); MyView mView =新建MyView(此);(新视图组.布局参数(视图组.布局参数.匹配父视图,视图组.布局参数.匹配父视图));添加视图(mView);

相关问题