我正在尝试调整线性布局中的行大小,具体取决于布局中的行数(布局具有固定高度)。这些行应该总是完全填满父布局。所以 1 行是父级的完整大小,2 行都是大小的一半等。这行得通,我现在也在尝试调整文本的大小,但是当我调整它的大小时它会被切断,即使 textview 很大足够了(我打开了果冻豆的显示视图边界功能)
private void setHeightOfRows(ViewGroup parent) {
int height = parent.getHeight();
int childCount = parent.getChildCount();
for (int i = 0; i < childCount; i++) {
LinearLayout.LayoutParams p = (LayoutParams) parent.getChildAt(i).getLayoutParams();
p.height = height / childCount;
parent.getChildAt(i).setLayoutParams(p);
((ViewGroup) parent.getChildAt(i)).setClipChildren(false);
Log.i("FontSize", "Set font size to " + 10 / childCount);
((TextView) parent.getChildAt(i).findViewById(R.id.name_text)).setTextScaleX(10 / childCount);// .setTextSize(10/childCount);
}
}
此方法在 ViewTreeObserver 中执行,因此在呈现 UI 之后。
如何在不切断文本的情况下调整文本大小?