J'essaie simplement d'ajouter la possibilité de faire défiler cette disposition en ajoutant une vue de défilement, mais chaque fois que j'essaie de charger la disposition, j'obtiens une erreur indiquant "Java.lang.IllegalStateException: ScrollView ne peut héberger qu'un seul enfant direct" et Je ne sais pas pourquoi.
Les suggestions sont très appréciées.
<?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>
Tout comme l'erreur le dit
ScrollView can Host only one direct child
Enveloppez les View
à l'intérieur d'un LinearLayout
pour que le ScrollView
ait uniquement le LinearLayout
comme enfant direct.
Un ScrollView est un FrameLayout, ce qui signifie que vous devez y placer un enfant contenant tout le contenu à faire défiler; cet enfant peut être lui-même un gestionnaire de mise en page avec une hiérarchie complexe d'objets. Un enfant qui est souvent utilisé est un LinearLayout dans une orientation verticale, présentant un tableau vertical d'éléments de niveau supérieur que l'utilisateur peut parcourir.
<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>