Подтвердить что ты не робот

Если ScrollView поддерживает только один прямой дочерний элемент, как я могу сделать прокрутку всего макета?

У меня есть 3 текстовых вида в макете, где текст скопирует нижнюю часть моего дроида 2... Как я могу убедиться, что весь текст доступен для просмотра, и пользователь может прокручивать вниз (просто пальцем), чтобы увидеть остальную часть моего текста?

Спасибо!

EDIT:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageButton android:id="@+id/ImageButton01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:background="@drawable/def" 
    android:layout_gravity="top|center">
    </ImageButton>

<TextView android:id="@+id/oneView" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:text="@string/one_def" 
android:layout_gravity="left|center" 
android:textSize="13dip"></TextView>

<TextView android:text="@string/two_def" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="left|center" 
android:id="@+id/twoView" 
android:textSize="13dip"></TextView>

<TextView android:text="@string/threedef_def" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_gravity="left|center" 
android:id="@+id/threeView" 
android:textSize="13dip"></TextView>


</LinearLayout>
4b9b3361

Ответ 1

Просто оберните текущий LinearLayout с помощью ScrollView. Поэтому это должно быть так:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <ImageButton ... />
        <TextView ... />
        <TextView ... />
        <TextView ... />

    </LinearLayout>
</ScrollView>

Ответ 2

Прямым потомком ScrollView должен быть другой макет, который поддерживает несколько дочерних элементов, например RelativeLayout или LinearLayout.

Ответ 3

Работал отлично.

Вот мой макет в качестве примера прокрутки элемента контента с двумя заголовками над ним, которые остаются неподвижными.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/mainMenu"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#FFFFFFFF"
xmlns:android="http://schemas.android.com/apk/res/android"
>
    <FrameLayout
    android:id="@+id/widget112"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
        <ImageView
        android:id="@+id/chemo_pro_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/chemo_pro_header"
        >
        </ImageView>
        <ImageButton
        android:id="@+id/menu_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/menu_btn_off"
        android:background="@null"
        android:layout_gravity="right"
        android:padding="8px"
        >
        </ImageButton>
    </FrameLayout>
    <ImageView 
    android:layout_width="wrap_content" 
    android:id="@+id/news_head"
    android:src="@drawable/news_head" 
    android:layout_height="wrap_content">
    </ImageView>
    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
            <TextView android:layout_marginLeft="6dip" android:text="Monday, November 29th, 2010" android:id="@+id/newsDateStamp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif" android:textStyle="italic" android:textColor="#ff999999"></TextView>
            <TextView android:layout_marginLeft="6dip" android:text="Normal Article Titles Fit on These Lines and have room to be this long" android:textSize="16sp" android:typeface="serif" android:textStyle="bold" android:textColor="#ff000000" android:id="@+id/newsTitle" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
            <TextView android:layout_marginLeft="6dip" android:text="Article source" android:id="@+id/newsSource" android:layout_width="wrap_content" android:layout_height="wrap_content" android:typeface="serif" android:textStyle="italic" android:textColor="#ff999999"></TextView>
            <ImageView 
            android:layout_width="wrap_content" 
            android:id="@+id/news_image"
            android:src="@drawable/news_image" 
            android:layout_height="wrap_content" android:layout_gravity="center">
            </ImageView>
            <TextView android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras in volutpat enim. Donec tempus vestibulum risus in pellentesque. Etiam eget lorem at velit facilisis dapibus.\n\nNunc dolor sem, semper vel vestibulum eu, ultrices tempus augue. Donec ligula erat, tempor dignissim imperdiet et, rutrum sed nisi. Praesent dignissim nulla ullamcorper metus facilisis auctor. Duis elementum commodo dictum. Duis rhoncus hendrerit lectus in tincidunt. Ut est neque, rutrum ut auctor ac, aliquet ut massa. Nullam at felis ipsum. Curabitur adipiscing sodales massa, sed lobortis lectus ultrices quis. Integer lobortis cursus tellus sed tempus. Ut convallis ullamcorper interdum. Integer iaculis feugiat ultricies.\n\nNunc dolor sem, semper vel vestibulum eu, ultrices tempus augue. Donec ligula erat, tempor dignissim imperdiet et, rutrum sed nisi. Praesent dignissim nulla ullamcorper metus facilisis auctor. Duis elementum commodo dictum. Duis rhoncus hendrerit lectus in tincidunt. Ut est neque, rutrum ut auctor ac, aliquet ut massa." android:layout_marginTop="6dip" android:layout_marginBottom="6dip" android:typeface="serif" android:id="@+id/newsBody" android:layout_marginLeft="6dip" android:layout_height="wrap_content" android:layout_width="wrap_content" android:textColor="#ff000000" android:layout_marginRight="6dip"></TextView>
    </LinearLayout>
    </ScrollView>
</LinearLayout>

Ответ 4

если вы хотите прокрутить весь макет, просто сделайте scrollview родителем и сделайте Linear layout или anyother layout как его первый дочерний элемент, а затем добавьте другие макеты внутри этого... example:

<scrollview>
   <linearLayout id = child1>
     <Textview/>
     <Textview/>
     <button/>
     <LinearLayout>
       <textview/>
     </LinearLayout
   </LinearLayout>
 </scrollview

здесь вид прокрутки содержит только один дочерний "child1", остальные находятся внутри него, и, следовательно, весь макет прокручивается