以编程方式计算textview的宽度

时间:2015-08-29 13:29:56

标签: android android-layout xamarin textview

我想以编程方式创建textview,如果它适合设备屏幕则水平显示,否则显示在下一行。

我有屏幕的可用宽度和一些文字。基于该文本,我想创建textview并显示它。我还有其他文本,如果它适合那里我想在第一行显示。否则,它应该继续下一行。唯一的问题是我无法根据文本得到textview的宽度。我不能使用wrap_content,因为它不会给我宽度值。

1 个答案:

答案 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.HeighttextView.Width,它将在创建视图后返回textview的真实宽度和高度,而不是包装内容-1值。