3

我有非常简单的自定义视图:

public class TestControl : RelativeLayout
{
    private readonly Context _context;

    private TextView _textLabel;

    public TestControl(Context context) : base(context)
    {
        _context = context;

        LayoutParameters = new LayoutParams(300, 200);
        SetBackgroundColor(Color.Green);

        _textLabel = new TextView(_context);
        _textLabel.SetText("Test test test test test test", TextView.BufferType.Normal);
        _textLabel.SetTextColor(Android.Graphics.Color.Black);
        _textLabel.LayoutParameters = new ViewGroup.LayoutParams(200, 50);
        _textLabel.SetBackgroundColor(Color.Red);

        AddView(_textLabel);
    }

    protected override void OnLayout(bool changed, int l, int t, int r, int b)
    {

    }
}

当我尝试将其作为视图添加到我的主要活动布局中时:

var myControl = new TestControl(this);
myMainLayout.AddView(myControl);

我只看到绿色矩形(300 x 200)但没有 TextView。

我究竟做错了什么?任何关于如何在一些彩色布局中至少显示 TextView 的帮助都非常感谢,因为我实际上需要更复杂的自定义视图。

提前致谢。

4

1 回答 1

0

您可能需要执行类似于此处解释的操作。在这种情况下, SetWillNotDraw可以对你耍一些花招。

于 2012-07-05T10:50:21.030 回答