我想以编程方式创建textview,如果它适合设备屏幕则水平显示,否则显示在下一行。
我有屏幕的可用宽度和一些文字。基于该文本,我想创建textview并显示它。我还有其他文本,如果它适合那里我想在第一行显示。否则,它应该继续下一行。唯一的问题是我无法根据文本得到textview的宽度。我不能使用wrap_content,因为它不会给我宽度值。
答案 0 :(得分:0)
在包含textview的活动中,实现此界面;
global::Android.Views.ViewTreeObserver.IOnGlobalLayoutListener
这将使您实现OnGlobalLayout方法。
您还需要添加;
rootLayout = FindViewById<RelativeLayout>(Resource.Id.rootLayout);
rootLayout.ViewTreeObserver.AddOnGlobalLayoutListener(this);
此处的根布局可以是包含文本视图的根布局。
关于您实施的方法,
public void OnGlobalLayout()
{
if (textView != null)
{
int height = textView .Height;
}
}
如果您调用textView.Height
或textView.Width
,它将在创建视图后返回textview的真实宽度和高度,而不是包装内容-1值。