마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

xml에서 한 뷰의 속성값을 다른 뷰의 속성값으로 설정할 수 있나요?

0 추천
<android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                app:layout_collapseMode="parallax"
                app:popupTheme="@style/AppTheme.PopupOverlay" >

                <EditText
                    android:id="@+id/edittext"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

            </android.support.v7.widget.Toolbar>

툴바의 layout_height 속성을 에딧텍스트의 layout_height 값인 wrap_content로 설정하는 방법이 있나요? 툴바를 wrap_content로 설정하는 건 아니고 에딧텍스트의 wrap_content값이어야 합니다. (자바 코드가 아닌 xml에서 설정하는 방법을 찾고 있습니다)

익명사용자 님이 2016년 8월 10일 질문
2016년 8월 10일 수정

1개의 답변

0 추천
 
채택된 답변
Toolbar도 View이기 때문에 View의 속성인 LayoutParam을 가지고 있고

LayoutParam에 height 속성값이 포함 되어 있으니 똑같이 layout_height 속성을 가지고 있을 겁니다.

Toolbar -> ViewGroup -> View

 

혹시 위의 답변을 원하시는게 맞나요? 제 생각에는 뭔가 제가 이해하지 못한 다른 부분을 질문 하시는거 같은데 질문이 정확히 이해가 가지 않네요...
Development Guy (70,570 포인트) 님이 2016년 8월 10일 답변
질문을 수정하려는 때에 답변이 달렸네요. 답변해 주신 내용이 해결 방법은 맞긴 한데, 자바코드가 아닌 xml에서 설정할 수 있는 방법을 찾고 있습니다.
제가 아직 정확히 이해가 안되서 그러는데 혹시 xml코드상에서 Toolbar의 layout_height값을 동적으로 EditText layout_height값과 같게 변경시키는 방법을 원하시는 건가요??
네 맞아요 바로 그겁니다
레이아웃 xml 파일도 리소스입니다. runtime에서 변경하거나 할 수가 없어요. 동적으로 변경하시려면 java 코드 내에서 하셔야 합니다.
실행하는 동안 변경할 수 없다는 건 알겠습니다. 그러면 xml 상에서 바로 참조할 수는 없는 건가요?
android:layout_height="EditText의 height값" 이런식으로 말이죠
View의 실제 크기는 runtime시에 Activity create 이후에 결정됩니다.
xml은 빌드 하기도 전에 정의해야 하는데 runtime 이후의 값을 미리 알 수 있는 방법은 없죠.
친절한 답변 감사합니다. 많은 도움이 되었습니다.
...