レイアウト内の行数に応じて、線形レイアウトで行のサイズを変更しようとしています(レイアウトの高さは固定されています)。行は常に親レイアウトを完全に埋めることになっています。したがって、1行は親のフルサイズ、2行は両方とも半分のサイズなどです。これは機能します。テキストのサイズも変更しようとしていますが、テキストビューが明らかに大きいにもかかわらず、サイズを変更すると途切れてしまいます。十分です(ジェリービーンズの表示境界機能をオンにしました)
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がレンダリングされた後です。
テキストを切り取らずにサイズを変更するにはどうすればよいですか?