2016-10-20 2 views
-1

이 중첩 된 레이아웃 구조 유무 :Android에서 중첩 된 레이아웃을 허용하지 않는 이유는 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:background="@android:color/black"> 

<ViewGroup 
    android:layout_width="94dp" 
    android:layout_height="54dp" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentEnd="true" 
    android:id="@+id/view"> 

    <ImageView 
     android:id="@+id/loggedInUserImageView" 
     android:layout_width="66dp" 
     android:layout_height="66dp" 
     android:layout_alignParentTop="true" 
     android:layout_alignEnd="@+id/view" /> 

</ViewGroup> 
</RelativeLayout> 

을하지만 렌더링 문제를 얻는다. 왜? 문제가 무엇입니까?

+0

''을 종료 하시겠습니까? – andre3wap

+2

'ViewGroup'은'abstract' 클래스입니다. Java에서'ViewGroup'의 인스턴스를 가질 수 없으며, 레이아웃 XML 자원의 요소로 사용할 수 없습니다. 'ViewGroup'의 구체적인 하위 클래스 (예 :'FrameLayout','LinearLayout','RelativeLayout','TableLayout','ConstraintLayout')를 사용해야합니다. – CommonsWare

답변

0

이 경우 ViewGroup 하위를 가질 수 없습니다. chil view의 위치 지정을위한 속성/속성이 없기 때문입니다. 렌더링 도중 오류가 발생합니다. Android에서 제공하는 다른 레이아웃을 사용할 수있는 모든 옵션이 있으며 ViewGroup에서만 확장됩니다.

ViewGroup을 사용하려면 더 잘 확장 한 다음 확장 클래스를 사용하십시오.

희망 사항을 이해하는 데 도움이됩니다.

0

당신은 XML 파일 내부에 ViewGroup을 사용하여 사용 LinearLayout, RelativeLayout, 등하거나 확장하여 사용자 정의 ViewGroup을 만들 수 없습니다.

0

추상 클래스 (보기 그룹)를 인스턴스화하려고합니다. ViewGroup을 확장 한 사용자 정의보기를 만든 다음 사용자 정의보기를 인스턴스화 할 수 있습니다.

관련 문제