Reputation: 1478
I'm using a ScrollView
. Although I had worked with it before, I suddenly encountered a problem. At some point contents start to go up.
In my AndroidStudio .xml file everything looks fine:
But on my device I get this:
As you can see "The notes go here" text moved up. I pressed the button, part of it is cut off.
My .xml code looks like this:
<?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>
And my activity:
public class ProfileInfo extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.profile_info);
}
}
[UPDATE]
<?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>
Upvotes: 0
Views: 119
Reputation: 21
This can be almost what you want. You can customize it a little to achieve what you want.
<?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>
Upvotes: 1
Reputation: 21
use linear layout vertical first. then in each line use linear layout horizontal.
<?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>
Upvotes: 1
Reputation: 2278
Issue 1: Your view inside the ScrollView should not have height match parent. That defeats the purpose of the ScrollView. the view has it's own size and the scroll contains it (typically the inner view is larger and the ScrollView scrolls it). Try to use wrap content instead.
Issue 2: Your ScrollView has height="wrap_content". This is a mistake, the ScrollView does not adjust its height according to the content. try to either give it explicit height or give it a height="match_parent".
Issue 3: what you see as your text on top of other content is a result of using RelativeLayout. in RelativeLayout the views are laid on top of each-other relative to the top/bottom/left/right of the parent. If you don't want them to overlap, use a LinearLayout instead of RelativeLayout or use a LinearLayout with multiple children inside of your RelativeLayout.
<?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>
Upvotes: 0