我正在尝试调整线性布局中的行,具体取决于布局中的行数(布局具有固定高度)。这些行应该始终完全填充父布局。所以1行是父级的完整大小,2行都是大小的一半等。 这是有效的,我现在正在尝试调整文本大小,但是当我调整它时它会被切断,即使textview非常大(我开启了果冻豆的show view bounds功能)
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之后。
如何在不切断文本的情况下调整文本大小?
答案 0 :(得分:0)
SetTextScaleX沿X方向(水平)拉伸文本。它看起来更像是你想缩小文字,所以它从上到下较小,对吧?在这种情况下,你不需要setTextScaleX,你想要setTextSize。
答案 1 :(得分:0)
android:padding
和android:margin
。或强>
setPadding
也必须有类似的保证金。setMinHeight
和setMinWidth