【问题标题】:ScrollView in Android does not workAndroid 中的 ScrollView 不起作用
【发布时间】:2015-12-25 02:47:21
【问题描述】:

我是 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>

【问题讨论】:

    标签: android scrollview


    【解决方案1】:

    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>
    

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

    【讨论】:

      【解决方案2】:

      只需将顶层布局设为 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?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-04-23
        • 1970-01-01
        • 1970-01-01
        • 2021-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多