0

.xml からではなく、コードからいくつかのコントロールを動的に追加しようとしました。次のようなコードを使用しました:

protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            mainLayout = FindViewById<LinearLayout>(Resource.Id.mainLayout);

            Button test = new Button(Window.Context) { Text = "BLABLABLA" };
            test.SetWidth(100);
            test.SetHeight(100);

            LinearLayout.LayoutParams _params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WrapContent, LinearLayout.LayoutParams.WrapContent, 0.0f);
            _params.SetMargins(10, 10, 0, 0);
            mainLayout.AddView(test, _params);
        }

しかし、私のアプリケーションにはボタンが表示されません。何が間違っている可能性がありますか?

更新: 動作するようになりました! しかし、私が何をしたのか、なぜ以前に実行されなかったのかわかりません。でもとにかく皆さんありがとう。

4

2 に答える 2

1

setContentView(mainLayout);メソッド内の呼び出しに失敗しますonCreate()

レイアウトを生成した後、このメソッドを呼び出す必要があることに注意してください。

于 2013-03-06T13:47:24.000 に答える
0

まず、LayoutParams を設定するには、次のようなレイアウトではなく、Button テストに設定する必要があります。

test.setLayoutParams(_params);

次に、次のようにメール レイアウトに追加します。

mainLayout.AddView(test);
于 2013-03-06T14:04:20.250 に答える