Вы можете использовать setMinHeight
для достижения этой цели
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int minHeight = MeasureSpec.getSize(widthMeasureSpec);
setMinHeight(minHeight);
}
И установите wrap_content
на layout_height
в макете:
<com.test.SquareTextView
android:id="@+id/squareTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" />
Обновление для RecyclerView:
1.Получить ширину экрана внутри класса занятий:
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x;
2.Передать его в адаптер и установить при создании представления элемента:
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View root = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.my_item, viewGroup, false);
root.setMinimumHeight(screenWidth);
return new ViewHolder(root);
}