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);」を削除しました。しかし、それは私の問題を解決しませんでした。

Snippet1は私の子ビューを表示しています。
Snippet2には子は表示されません。
誰かがこの問題の解決策を指摘できますか?

4

1 に答える 1

1

マージンは1234に設定されています-これは1234ディップ(密度に依存しないピクセル)であり、それは巨大です。余白が大きすぎるため、コントロールが画面に表示されず、コントロールを画面に表示する場所がありません。

于 2013-01-27T11:37:04.113 に答える