코드의 레이아웃 방향


90

내 응용 프로그램에 다음 코드가 있습니다.

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

LinearLayout의 방향을 세로로 설정하고 싶습니다. XML에서 동등한 것은 다음과 같습니다.

android:orientation="vertical"

XML없이 코드에서 어떻게 할 수 있습니까?

답변:


188

LinearLayout사용하여의 방향을 변경할 수 없습니다 LayoutParams. LinearLayout개체 로만 할 수 있습니다 .

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
두번째 라인이어야myLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
abhyudayasrinet

4

LinearLayout을 인스턴스화해야합니다. 그 후에 setOrientation ()을 호출 할 수 있습니다.

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

그게 일을해야합니다 :)

자세한 내용은 Android API를 확인하세요 .


2

아래의 작업 샘플 (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

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에 정의 된 정적 값 (예 : LinearLayout.Vertical)을 사용해야합니다.
Stealth Rabbi

내가 옳고 그름인지 알고 싶었 기 때문입니다. :) 이제 linearLayout에 정의 된 정적 값을 사용하는 것이 더 낫다는 것을 배웠습니다. :-)
Yama Raahi

그럼 정답 만 보시면 어떨까요? Stack Overflow를 사용하여 추측을 답변으로 사용해서는 안됩니다. 질문에 올바르게 답하는 방법을 모른다면 답을 쓰지 마십시오. 이제 누군가가이 페이지를 방문 할 때, 그들은 당신의 잘못된 대답을 무시하고 더 나은 대답을 찾는 것을 알아야합니다. 이것이 당신이 반대표를받는 이유입니다.
Stealth Rabbi

나는 단지 내 친구에게 기여하고 싶었다. 내 경우에는 이것이 효과가 있었고 나는 그를 위해 논평했다. BTW, 2와 1을 사용하는 것이 잘못된 경우 도대체 존재하는 이유.?
Yama Raahi

@StealthRabbi가 지적한 것처럼 LinearLayout에 정의 된 정적 상수에 첨부 된 원시 값이기 때문에 존재합니다. 그러나 이러한 값을 사용해서는 안됩니다.
다니엘 몰리나
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.