Android中的ScrollView不起作用

时间:2015-09-27 21:47:41

标签: android scrollview

我是Android应用开发的新手,我遇到以下问题。当我向我的布局添加ScrollView时,我收到以下消息:

  

渲染问题注意:此项目包含Java编译   错误,可能导致自定义视图的呈现失败。固定   编译问题首先。渲染期间引发异常:   ScrollView只能托管一个直接孩子

我不确切地知道我必须做些什么来解决这个问题。

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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:orientation="vertical"
android:background="@drawable/home"
tools:context="dmst.allamoda.Login">

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:weightSum="1">


<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/linearLayout1"
    android:background="@drawable/rectangle"
    android:gravity="top|right">

    <Button
        android:background="@drawable/mybutton"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:text="@string/button_home"
        android:id="@+id/home"
        android:textColor="#ffffd1"
        android:onClick="signupControl"
        android:layout_gravity="center"/>

    <Button
        android:background="@drawable/mybutton"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:text="@string/button_profile"
        android:id="@+id/profile"
        android:textColor="#ffffd1"
        android:onClick="signupControl"
        android:layout_gravity="center"/>

    <ImageView
        android:id="@+id/logo_image"
        android:background="@drawable/allamodalogo"
        android:layout_width="160dp"
        android:layout_height="100dp"
        android:scaleType="fitXY"
        android:gravity="right"
        android:adjustViewBounds="true"
        android:maxHeight="50dp"
        android:maxWidth="50dp"
        android:minHeight="50dp"
        android:minWidth="50dp"
        android:layout_gravity="right"/>
</LinearLayout>

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/linearLayout2"
    android:layout_marginTop="20dp"
    android:background="@drawable/post"
    android:gravity="top|left">

    <ImageView
        android:id="@+id/profile2"
        android:background="@drawable/profile2"
        android:layout_width="120dp"
        android:layout_height="100dp"
        android:scaleType="fitXY"
        android:gravity="right"
        android:adjustViewBounds="true"
        android:maxHeight="50dp"
        android:maxWidth="50dp"
        android:minHeight="50dp"
        android:minWidth="50dp"
        android:layout_gravity="right"/>

    <TextView
        android:id="@+id/username"
        android:inputType="text"
        android:layout_width="250dp"
        android:layout_height="50dp"
        android:textColorHint="#000000"
        android:hint="@string/myprofile"
        android:layout_marginTop="20dp"
        android:layout_marginLeft="15dp"
        android:textColor="#000000"
        android:gravity="top"/>
</LinearLayout>


<LinearLayout
    android:layout_marginTop="25dp"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:orientation="vertical"
    android:layout_gravity="center"
    android:gravity="center"
    android:id="@+id/linearLayout3"
    android:background="@drawable/post">

    <LinearLayout
        android:layout_marginTop="0dp"
        android:layout_marginBottom="10dp"
        android:layout_width="300dp"
        android:layout_height="100dp"
        android:orientation="horizontal"
        android:layout_gravity="left"   >

        <ImageView
            android:id="@+id/profile_image"
            android:background="@drawable/profile2"
            android:layout_width="90dp"
            android:layout_height="90dp"
            android:scaleType="fitXY"
            android:gravity="right"
            android:adjustViewBounds="true"
            android:maxHeight="50dp"
            android:maxWidth="50dp"
            android:minHeight="50dp"
            android:minWidth="50dp"/>

        <TextView
            android:id="@+id/postname"
            android:inputType="text"
            android:layout_width="190dp"
            android:layout_height="50dp"
            android:textColorHint="#000000"
            android:hint="@string/myprofile"
            android:layout_marginTop="20dp"
            android:layout_marginLeft="15dp"
            android:textColor="#000000"
            android:gravity="top"/>

    </LinearLayout>

    <ImageView
        android:id="@+id/post1"
        android:background="@drawable/post2"
        android:layout_width="150dp"
        android:layout_height="160dp"
        android:scaleType="fitXY"
        android:gravity="center"
        android:adjustViewBounds="true"
        android:maxHeight="50dp"
        android:maxWidth="50dp"
        android:minHeight="50dp"
        android:minWidth="50dp"
        android:marginBottom="10dp"/>


</LinearLayout>
</ScrollView></LinearLayout>

2 个答案:

答案 0 :(得分:3)

ScrollView必须只包含一个孩子。 您应该将所有LinearLayout个观看点放在一个垂直LinearLayout中,并将其放在ScrollView内:

<ScrollView
    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:background="@drawable/home"
    tools:context="dmst.allamoda.Login">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    ...
    </LinearLayout>
</ScrollView>

我也删除了根LinearLayout,因为它似乎是多余的。

答案 1 :(得分:1)

只需将顶级布局设为ScrollView:

    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    <LinearLayout
            <!-- everything you w -->
    </LinearLayout>
</ScrollView>

为我工作:How to use ScrollView in Android?