0

我有以下问题:

下面的代码成功地将我的 TextView 添加到我的自定义 RelativeLayout:

 RectF rectRecord = getItemRect(trCurrent);
    TextView tv = new TextView(this.getContext());
                 tv.setLeft((int)rectRecord.left);
                tv.setRight((int)rectRecord.right);
                tv.setTop((int)rectRecord.top);
                tv.setBottom((int)rect.bottom);

                addView(tv);

不幸的是,这些方法(“setLeft,setRight,setTop,setBottom”)在 3.0 之前的 Android 上不可用。所以我尝试以另一种方式添加我的 TextView:

 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
                params.setMargins((int)rectRecord.left, (int)rectRecord.top, (int)rectRecord.right, (int)rectRecord.bottom);
                //tv.setLayoutParams(tv);
                addView(tv, params);

这样做不会显示儿童控制......

我已经尝试将我的主机控件派生自 ViewGroup 的类更改为 LinearLayout、RelativeLayout 和已弃用的 AbsoluteLayout,但始终相同。还删除了我的自定义 onDraw 和 onMeasure 以及“setWillNotDraw(false);” 但这并没有解决我的问题。

片段 1 正在显示我的子视图。
片段 2 没有显示孩子。
谁能指出这个问题的解决方案?

4

1 回答 1

1

您的边距设置为 1234 - 这是 1234 下降(与密度无关的像素),这是巨大的。您的控件没有显示在屏幕上,因为边距太大,并且您的控件没有地方显示在屏幕上。

于 2013-01-27T11:37:04.113 回答