web-dev-qa-db-ja.com

コードでのレイアウトの向き

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

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

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

Android:orientation="vertical"

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

81
Greg

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

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

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

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

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

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

それは仕事をする必要があります:)

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

4
dudeldidadum

以下の作業サンプル(LinearLayout.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
Tia

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

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