ScrollView内容向上移动

时间:2016-03-02 18:20:48

标签: java android scrollview

我正在使用INSTEAD of it's current results。虽然我之前曾经使用它,但我突然遇到了一个问题。在某些时候,内容开始上升。

在我的AndroidStudio .xml文件中,一切看起来都很好:

enter image description here

但是在我的设备上我得到了这个:

enter image description here

正如您所看到的“笔记在这里”文字向上移动。我按下按钮,部分被切断了。

我的.xml代码如下所示:

ScrollView

我的活动:

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mainLayout">

....

    </RelativeLayout>
</ScrollView>

[UPDATE]

public class ProfileInfo extends Activity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.profile_info);


    }

}

3 个答案:

答案 0 :(得分:1)

首先使用线性布局垂直。然后在每一行使用线性布局水平。

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

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       xmlns:app="http://schemas.android.com/apk/res-auto"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:orientation="vertical"
       android:id="@+id/mainLayout">

       <LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
          xmlns:app="http://schemas.android.com/apk/res-auto"
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:orientation="horizontal"
          android:id="@+id/mainLayout">
          //here put your code for each line.
       </LinearLayout>
        //then again use a linear layout horizontal for next line
        .
        .
        .
        .
    </LinearLayout>
</ScrollView>

答案 1 :(得分:1)

这几乎可以是你想要的。您可以稍微自定义它以达到您想要的效果。

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Profile"
                android:id="@+id/ProfHead"
                android:layout_marginTop="20dp"
                />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:gravity="center">
           <ImageView
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:scaleType="fitCenter"
                android:id="@+id/imageProfile"
                android:src="@drawable/profile_icon"
                android:layout_marginTop="20dp"
                android:layout_marginBottom="20dp" />
        </LinearLayout>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Contacts >"
            android:id="@+id/contactsBtn"
            android:layout_gravity="center"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Home Phone a"
            android:id="@+id/anchor1"
            android:visibility="invisible"
            android:layout_alignLeft="@+id/nameHead"
            android:layout_alignStart="@+id/nameHead" />


        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:text="Name"
            android:id="@+id/nameHead"
            android:layout_marginLeft="20dp"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginRight="20dp"
                android:id="@+id/editName"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:layout_marginLeft="20dp"
                android:text="Name"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Surname"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:layout_marginRight="20dp"
                android:id="@+id/editSurname"/>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Sex"
                android:layout_marginRight="20dp"
                android:id="@+id/sexHead"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="20dp"

                />


            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Sex"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="20dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:id="@+id/radioGroup">

            </TextView>

        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Age"
                android:id="@+id/ageHead"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="20dp"
                android:text="Age"
                android:id="@+id/editAge"
                android:textAppearance="?android:attr/textAppearanceMedium"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="DOB"
                android:id="@+id/dobHead"
                android:layout_marginTop="10dp"
                android:layout_marginRight="20dp"
                android:layout_marginLeft="20dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="20dp"
                android:text="DOB"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:id="@+id/editDob"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Height"
                android:id="@+id/heightHead"
                android:layout_marginTop="10dp"
                android:layout_marginRight="20dp"
                android:layout_marginLeft="20dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Height"
                android:id="@+id/editHeight"/>
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Weight"
                android:id="@+id/weightHead"
                android:layout_marginTop="10dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"/>

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Weight"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:id="@+id/editWeight"
                android:layout_marginTop="10dp" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Notes"
                android:id="@+id/notesHead"
                android:layout_marginLeft="20dp"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Template >"
                android:layout_marginLeft="20dp"
                android:id="@+id/notesBtn"/>

        </LinearLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:id="@+id/editNotes"
            android:layout_marginLeft="20dp"
            android:text="The notes go here"
            android:layout_marginRight="20dp"/>

    </LinearLayout>
</ScrollView>

答案 2 :(得分:0)

问题1:您在ScrollView中的视图不应该与父级高度匹配。 这违背了ScrollView的目的。视图有自己的大小,滚动包含它(通常内部视图更大,ScrollView滚动它)。 尝试使用换行内容。

问题2:您的ScrollView具有height =“wrap_content”。这是一个错误,ScrollView不会根据内容调整其高度。尝试给它明确的高度或给它一个height =“match_parent”。

问题3:您在其他内容之上看到的文本是使用RelativeLayout的结果。在RelativeLayout中,视图相对于父级的顶部/底部/左侧/右侧放置在彼此之上。 如果您不希望它们重叠,请使用LinearLayout而不是RelativeLayout,或者在RelativeLayout中使用包含多个子项的LinearLayout。

<?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:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/mainLayout">
    </LinearLayout>
</ScrollView>