gpt4 book ai didi

android - 当内容无法容纳时,如何创建默认形状为正方形且高度可自动调整的 TextView?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:59:54 24 4
gpt4 key购买 nike

我想创建一个默认为正方形的自定义 TextView,但如果文本无法容纳,高度会自动增加以容纳内容。

我尝试将高度设置为 wrap_content 并像这样覆盖 onMeasure():

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int newHeight = heightMeasureSpec > widthMeasureSpec ? heightMeasureSpec : widthMeasureSpec;
super.onMeasure(widthMeasureSpec, newHeight);
}

但这没有用。

内容越少越好。 SquareView when content is small


但是当内容较多时,高度应该会扩大但不会。很多文字被剪掉了 enter image description here

最佳答案

你可以使用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.在 Activity 类中获取屏幕宽度:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x;

2.传递给adapter并在create item view时设置:

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

关于android - 当内容无法容纳时,如何创建默认形状为正方形且高度可自动调整的 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55429848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com