ScrollView Android崩溃

时间:2018-02-22 20:06:46

标签: android xml

Here is the logcat. 下面是我在Android上注册表单的代码,因为表单很长而且不适合我的屏幕我想为它添加一个scrollview,不幸的是,当它正在滚动时,scrollview正在崩溃应用程序loading。创建的错误是super.onCreate(savedInstanceState);                              的setContentView(R.layout.activity_register); 有人可以帮帮我吗?

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/b15"
tools:context="com.Register">

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">


        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="0dp"
            android:padding="10dp"
            app:srcCompat="@drawable/evote" />


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlUsername"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/imageView">


            <EditText
                android:id="@+id/txtUsername"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:hint="Student ID"
                android:inputType="textPersonName"
                android:textSize="14sp" />


        </LinearLayout>


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlFirstname"
            android:layout_below="@+id/lnlUsername"
            android:layout_alignParentStart="true">

            <EditText
                android:id="@+id/txtFirstname"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:hint="Firstname"
                android:inputType="textPersonName"
                android:textSize="14sp" />


        </LinearLayout>



        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlSurname"
            android:layout_below="@+id/lnlFirstname"
            android:layout_alignParentStart="true">

            <EditText
                android:id="@+id/txtSurname"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:inputType="textPersonName"
                android:hint="Surname"
                android:textSize="14sp" />


        </LinearLayout>


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlEmail"
            android:layout_below="@+id/lnlSurname"
            android:layout_alignParentStart="true">

            <EditText
                android:id="@+id/txtEmail"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:inputType="textEmailAddress"
                android:hint="Email"
                android:textSize="14sp" />


        </LinearLayout>



        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlFaculty"
            android:layout_below="@+id/lnlEmail"
            android:layout_alignParentStart="true"
            android:weightSum="1">

            <Spinner
                android:id="@+id/spfaculty"
                android:layout_width="match_parent"
                android:layout_height="39dp"
                android:layout_marginStart="45dp"
                android:entries="@array/faculty_arrays"
                android:prompt="@string/faculty_prompt"
                android:layout_weight="0.83" />


        </LinearLayout>




        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlSpquestions"
            android:layout_below="@+id/lnlFaculty"
            android:layout_alignParentStart="true"
            android:weightSum="1">

            <Spinner
                android:id="@+id/spquestions"
                android:layout_width="match_parent"
                android:layout_height="39dp"
                android:layout_marginStart="45dp"
                android:entries="@array/question_arrays"
                android:prompt="@string/question_prompt"
                android:layout_weight="0.83" />


        </LinearLayout>



        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlAnswer"
            android:layout_below="@+id/lnlSpquestions"
            android:layout_alignParentStart="true">

            <EditText
                android:id="@+id/txtAnswer"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:hint="Answer"
                android:inputType="textPersonName"
                android:textSize="14sp" />


        </LinearLayout>




        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlPassword"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/lnlAnswer">



            <EditText
                android:id="@+id/txtPassword"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:inputType="textPassword"
                android:hint="Password"
                android:textSize="14sp" />


        </LinearLayout>



        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlConfirmPassword"
            android:layout_below="@+id/lnlPassword"
            android:layout_alignParentStart="true">

            <EditText
                android:id="@+id/txtConfirmPassword"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_marginStart="45dp"
                android:layout_weight="0.01"
                android:ems="30"
                android:inputType="textPassword"
                android:hint="Confirm Password"
                android:textSize="14sp" />


        </LinearLayout>


        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:id="@+id/lnlRegister"
            android:layout_below="@+id/lnlConfirmPassword"
            android:layout_alignParentStart="true">

            <Button
                android:id="@+id/btnregisterstudent"
                style="@style/Base.TextAppearance.AppCompat.Body2"
                android:layout_width="match_parent"
                android:layout_height="45dp"
                android:layout_centerHorizontal="true"
                android:layout_gravity="center_horizontal"
                android:layout_marginTop="20dp"
                android:background="#ff944d"
                android:clickable="true"
                android:layout_marginStart="20dp"
                android:padding="10dp"
                android:layout_marginEnd="20dp"
                android:text="Register"
                android:textAllCaps="false"
                android:textColor="#fff"
                android:textSize="15sp" />


        </LinearLayout>
</ScrollView>

</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

记住

  

ScrollView只有一个孩子...你的卷轴有多个......

因此,尝试在scrollView

的单个子项中包装imageView和其他布局

你可以做一件事在scrollView下包装一个相对布局,并在scrollView关闭上面关闭它。

答案 1 :(得分:0)

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollView"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/b15"
        tools:context="com.Register"
        >
        //add your view here
        ....
    </RelativeLayout>
</ScrollView>

并记住只在root用户上添加此Android命名空间

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"

在子视图上不需要Android命名空间