您可以尝试最初将layout_height设置为wrap_content。但是从那里我想你必须进入代码。只是为了实验,在你的活动中尝试如下:
@Override
public void onResume(){
super.onResume();
findViewById(R.id.squareView).getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override public void onGlobalLayout() {
View squareView = findViewById(R.id.squareView);
LayoutParams layout = squareView.getLayoutParams();
layout.height = squareView.getWidth();
squareView.setLayoutParams(layout);
squareView.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
}
其中R.id.squareView是有问题的视图的ID。并注意,这个代码被包装在onGlobalLayout调用中,以确保squareView.getWidth()有一个有意义的值。