コードのレイアウト方向


89

私のアプリケーションにはこのコードがあります:

LinearLayout.LayoutParams params =
    new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);

LinearLayoutの方向を垂直に設定したいだけです。XMLで同等のものは次のとおりです。

android:orientation="vertical"

XMLなしでコードでそれを行うにはどうすればよいですか?

回答:


187

LinearLayoutを使用しての向きを変更することはできませんLayoutParamsLinearLayoutオブジェクトでのみ実行できます。

LinearLayout layout = /* ... */;
layout.setOrientation(LinearLayout.VERTICAL);

8

次のように使用できます:

LinearLayout myll = (LinearLayout) findViewById(R.id.yourLinearLayout);
myll.setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT));
myll.setOrientation(LinearLayout.VERTICAL);

4
2行目はmyLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
abhyudayasrinet 2015

4

LinearLayoutをインスタンス化する必要があります。その後、setOrientation()を呼び出すことができます

LinearLayout myLayout = ...;
myLayout.setLayoutParams(new LayoutParams(LinearLayout.WRAP_CONTENT, LinearLayout.WRAP_CONTENT);
myLayout.setOrientation(LinearLayout.VERTICAL);

それは仕事をするはずです:)

詳細については、Android APIを確認してください。


2

以下の実用的なサンプル(それは、LayoutLaramout.WRAP_CONTENTではなくLayoutParams.WRAP_CONTENTです)

myLayout.setOrientation(LinearLayout.VERTICAL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
myLayout.setLayoutParams(layoutParams);

2

私のようにXamarinの答えを探している誰かがここに到着した場合、同等のものは次のとおりです。

LinearLayout layout = /* ... */;
layout.Orientation = Orientation.Vertical;
layout.LayoutParameters = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent);

-6

単に次のように使用します:-

LinearLayout mlayout = new LinearLayout(context);
mlayout.setOrientation(2);

2はを意味しVertical、1はに使用されhorizontalます。


1
回答が受け入れられてから4年後に戻って、より悪い回答をするのはなぜですか。「2」は使用しないでください。LinearLayout.Verticalなど、LinearLayoutで定義された静的な値を使用する必要があります。
Stealth Rabbi

私が正しいか間違っているか知りたいからです。:)今、私はlinearLayoutで定義された静的な値を使用する方が良いことを学びました。:-)
ヤマラーヒ2016年

では、なぜ正しい答えを見ないのでしょうか。スタックオーバーフローを使用して、推測を回答として使用しないでください。質問に正しく答える方法がわからない場合は、答えを書かないでください。誰かがこのページに来たとき、彼らはあなたの間違った答えを無視し、より良いものを探すことを知る必要があります。これがあなたが反対投票されている理由です。
Stealth Rabbi

私は私の友人に貢献したかっただけです、私の場合、これはうまくいきました、そして私は彼のためにコメントしました。ところで、2と1を使用するのが間違っている場合、なぜそれが存在するのでしょうか。
ヤマラーヒ2016年

これは、@ StealthRabbiが指摘したように、LinearLayoutで定義された静的定数に付加された生の値であるために存在します。ただし、これらの値は決して使用しないでください。
Daniel Molina
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.