2016-10-20 5 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'は'抽象 'クラスです。 Javaで 'ViewGroup'のインスタンスを持つことはできません。また、レイアウトXMLリソースの要素として使用することもできません。 'ViewGroup'の具象サブクラス(例えば、' FrameLayout'、 'LinearLayout'、' RelativeLayout'、 'TableLayout'、' ConstraintLayout')を使う必要があります。 – CommonsWare

答えて

0

この場合、ViewGroupの子を持つことはできません。なぜならあなたはchilビューの位置付けの属性/プロパティを持っていないからです。レンダリング中にエラーが発生します。 アンドロイドによって提供される異なるレイアウトを使用するオプションはすべて、ViewGroupからのみ拡張されています。

ViewGroupを使いたい場合は、それを拡張してから拡張クラスを使用します。

希望すると、理解しやすくなります。

0

あなたは、XMLファイル内ViewGroupを使用使用LinearLayoutRelativeLayout、など。またはそれを拡張することによって、カスタムViewGroupを作成することはできません。

0

抽象クラス(ViewGroup)をインスタンス化しようとしています。 ViewGroupを拡張するカスタムビューを作成します。その後、カスタムビューをインスタンス化することができます。

関連する問題