2016-03-02 123 views
0

我正在使用ScrollView。尽管之前我曾与之合作过,但我突然遇到了一个问题。有些时候内容开始上升。ScrollView内容向上移动

在我AndroidStudio .xml文件的一切看起来不错:

enter image description here

但我的设备我得到这个:

enter image description here

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

我的.xml代码如下所示:

<?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> 

我的活动:

public class ProfileInfo extends Activity { 


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


    } 

} 

[更新]

<?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"> 
    <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"> 


     <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_alignParentTop="true" 
      android:layout_marginTop="20dp" 
      android:layout_centerHorizontal="true" 
      /> 

     <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" 
      android:layout_above="@+id/contactsBtn" 
      android:layout_below="@+id/ProfHead" /> 



     <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_below="@+id/patProfHead" 
      android:layout_marginTop="200dp" 
      android:layout_marginLeft="20dp" 
      android:layout_alignParentLeft="true"/> 


     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Contacts >" 
      android:id="@+id/contactsBtn" 
      android:layout_above="@+id/editName" 
      android:layout_toRightOf="@id/anchor1"/> 


     <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_below="@+id/nameHead" 
      android:layout_marginLeft="20dp" 
      android:layout_alignParentLeft="true" 
      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" 
      android:layout_below="@+id/nameHead" 
      android:layout_toRightOf="@id/editName"/> 



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

      /> 


     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@+id/anchor1" 
      android:text="Sex" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_alignBottom="@id/sexHead" 
      android:id="@+id/radioGroup"> 

     </TextView> 

     <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_below="@id/sexHead" 
      android:layout_marginTop="10dp" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="20dp"/> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="20dp" 
      android:text="Age" 
      android:id="@+id/editAge" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_toRightOf="@id/anchor1" 
      android:layout_alignBaseline="@id/ageHead"/> 

     <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_below="@id/ageHead" 
      android:layout_marginTop="10dp" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="20dp"/> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="20dp" 
      android:text="DOB" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:id="@+id/editDob" 
      android:layout_toRightOf="@id/anchor1" 
      android:layout_alignBaseline="@id/dobHead"/> 

     <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_below="@id/dobHead" 
      android:layout_marginTop="10dp" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="20dp"/> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginRight="20dp" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="Height" 
      android:id="@+id/editHeight" 
      android:layout_toRightOf="@id/anchor1" 
      android:layout_alignBaseline="@id/heightHead"/> 


     <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_below="@id/heightHead" 
      android:layout_marginTop="10dp" 
      android:layout_alignParentLeft="true" 
      android:layout_marginLeft="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_toRightOf="@id/anchor1" 
       android:layout_marginRight="20dp" 
       android:layout_alignBaseline="@id/weightHead"/> 


      <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_below="@id/weightHead" 
       android:layout_marginTop="10dp" 
       android:layout_alignParentLeft="true" 
       android:layout_marginLeft="20dp"/> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Template >" 
     android:id="@+id/notesBtn" 
     android:layout_alignBaseline="@id/notesHead" 
     android:layout_toRightOf="@id/anchor1"/> 

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

    </RelativeLayout> 
</ScrollView> 
+0

我在Activity或xml中看不到任何对“Notes go here”的引用。很难说为什么它不是你想要的地方。 – DSlomer64

+0

而不是'....'有TextViews和Buttons。我定义了那里的一切。在.xml中 –

回答

0

问题1:您的滚动型内部视图不应该有身高匹配的父母。 这打败了ScrollView的目的。该视图具有它自己的大小,并且滚动包含它(通常,内部视图更大并且ScrollView滚动它)。 尝试使用换行内容。

问题2:您的ScrollView的高度=“wrap_content”。这是一个错误,ScrollView根据内容不调整其高度。尝试给它明确的高度或给它一个高度=“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> 
+0

没有帮助。一切都是一样的。 –

+0

你可以发布你的整个XML? – TacoEater

+0

发布在** [UPDATE] **部分 –

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

这可以几乎是你想要的。你可以自定义一下,以达到你想要的。

<?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> 
+0

我真的很感谢你的努力,但问题解决了。给你+1 –