私は単にスクロールビューを追加してこのレイアウトをスクロールする機能を追加しようとしていますが、レイアウトをロードしようとするたびに「Java.lang.IllegalStateException:ScrollView can host one one direct direct child」というエラーが表示されます理由はわかりません。
どんな提案でも大歓迎です。
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:orientation="vertical" >
<RelativeLayout>
<View
Android:layout_width="1dp"
Android:layout_height="5dp" >
</View>
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1" >
<com.google.Android.youtube.player.YouTubePlayerView
Android:id="@+id/youtubeplayerview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" />
<View
Android:layout_width="1dp"
Android:layout_height="5dp" >
</View>
<TextView
Android:id="@+id/textView1a"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Isaac Daniel at CNN Anderson Cooper"
Android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
Android:id="@+id/textView2a"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="by idconex"
Android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
Android:id="@+id/textView3a"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="675,000,000 views"
Android:textAppearance="?android:attr/textAppearanceSmall" />
<com.google.Android.youtube.player.YouTubePlayerView
Android:id="@+id/youtubeplayerview2"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" />
<TextView
Android:id="@+id/textView1b"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Rage Against The Machine - Bulls on Parade"
Android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
Android:id="@+id/textView2b"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="by RATMVEVO"
Android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
Android:id="@+id/textView3b"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="1,195,601 views"
Android:textAppearance="?android:attr/textAppearanceSmall" />
</ScrollView>
</RelativeLayout>
</LinearLayout>
<?xml version="1.0" encoding="UTF-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1"
Android:orientation="vertical" >
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1" >
<LinearLayout Android:layout_width="match_parent"
Android:layout_height="wrap_content">
<com.google.Android.youtube.player.YouTubePlayerView
Android:id="@+id/youtubeplayerview"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" />
<View
Android:layout_width="1dp"
Android:layout_height="5dp" >
</View>
<TextView
Android:id="@+id/textView1a"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Isaac Daniel at CNN Anderson Cooper"
Android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
Android:id="@+id/textView2a"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="by idconex"
Android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
Android:id="@+id/textView3a"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="675,000,000 views"
Android:textAppearance="?android:attr/textAppearanceSmall" />
<com.google.Android.youtube.player.YouTubePlayerView
Android:id="@+id/youtubeplayerview2"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" />
<TextView
Android:id="@+id/textView1b"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="Rage Against The Machine - Bulls on Parade"
Android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
Android:id="@+id/textView2b"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="by RATMVEVO"
Android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
Android:id="@+id/textView3b"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:text="1,195,601 views"
Android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
エラーが言うように
ScrollView can Host only one direct child
View
の内側にLinearLayout
sをラップして、ScrollView
が直接の子としてLinearLayout
のみを持つようにします。
ScrollViewはFrameLayoutです。つまり、スクロールするコンテンツ全体を含む子を1つ配置する必要があります。この子自体が、オブジェクトの複雑な階層を持つレイアウトマネージャーである場合があります。よく使用される子は、垂直方向のLinearLayoutであり、ユーザーがスクロールできる最上位アイテムの垂直配列を提示します。
<ScrollView
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_weight="1" >
<LinearLayout Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:orientation="vertical">
// all the views currently in your ScrollView
</LinearLayout>
</ScrollView>