How to implement a scroll view on only part of my layout

12,117

Solution 1

Try doing something like this:

LinearLayout
    LinearLayout
        Header-Elements
    /LinearLayout

    ScrollView
        LinearLayout
            Main-Elements
        /LinearLayout
    /ScrollView

    LinearLayout
        Bottom-Elements
    /LinearLayout
/LinearLayout

Remeber to use android:orientation="vertical" on the LinearLayout if you want that the elements apear beneath each other.

Solution 2

Here is the pseudo layout design as per your requirement:

<LinearLayout
   ----
   android:weightSum="1.0" >

--- Your top elements ---

<ScrollView >
<LinearLayout
   ----
   android:layout_weight="1.0" >

--- Your scrollable items ----

</LinearLayout>
</ScrollView>

--- Your bottom elements ---

</LinearLayout>

Solution 3

You can use RelativeLayout for this:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/White" >

    <RelativeLayout 
        android:id="@+id/topLayout"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_alignParentTop="true" >
        // place your all the textViews here (all the top ones.)
    </RelativeLayout>

    <ScrollView
        android:layout_below="@id/topLayout"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
        // place your all scrollable views here.
    </ScrollView>

    <RelativeLayout 
        android:id="@+id/bottomLayout"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true" >
        // place your all the buttons here (the bottom part.)
    </RelativeLayout>
</RelativeLayout>

EDIT:

As RelativeLayout places views relatively, by using android:layout_alignParentBottom="true" the views can be placed on bottom part of the screen.

Share:
12,117
JuiCe
Author by

JuiCe

Updated on June 05, 2022

Comments

  • JuiCe
    JuiCe almost 2 years

    I want to create a layout that has 6 TextViews on the very top, 4 Buttons on the very bottom, and then have the entire center space be a scroll view with 22 Checkboxes ( 1 per line ). Basically I want a title bar on top, 2 buttons to navigate on the bottom, and a list I can scroll through in the middle.

    I also would like the checkboxes to remain uncheckable, which I'm sure is a simple function call.

    The view comes up with no upper title with text, and no lower bar with the buttons. Does anyone know what to do? The scrollview is the only thing appearing....

    <?xml version="1.0" encoding="UTF-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:weightSum="1.0" >
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="SN : " />
    
                <TextView
                    android:id="@+id/serialNumberView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal" />
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="Ver : " />
    
                <TextView
                    android:id="@+id/versionView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal" />
    
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:text="Type : " />
    
                <TextView
                    android:id="@+id/typeView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal" />
    
        </LinearLayout>
    
        <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1" >
    
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content" 
                    android:orientation="vertical"
                    android:layout_weight="1">
    
    
                        <CheckBox
                            android:id="@+id/floatCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Float" />
    
                        <CheckBox
                            android:id="@+id/tripCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Trip" />
    
                        <CheckBox
                            android:id="@+id/closeCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Close" />
    
                        <CheckBox
                            android:id="@+id/blockedCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Blocked" />
    
                        <CheckBox
                            android:id="@+id/hardTripCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Hard Trip" />
    
                        <CheckBox 
                            android:id="@+id/phaseAngleCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Phase angle wrong for closing" />
    
                        <CheckBox
                            android:id="@+id/diffVoltsCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Differential volts too low" />
    
                        <CheckBox
                            android:id="@+id/networkVoltsCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Netwrok volts too low to close" />
    
                        <CheckBox
                            android:id="@+id/usingDefaultsCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Using Defaults( Reprogram )" />
    
                        <CheckBox
                            android:id="@+id/relaxedCloseActiveCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Relaxed Close Active" />
    
                        <CheckBox
                            android:id="@+id/commBoardDetectedCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Comm Board Detected" />
    
                        <CheckBox 
                            android:id="@+id/antiPumpBlock"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Anti-Pump Block" />
    
                        <CheckBox
                            android:id="@+id/motorCutoffCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Motor Cutoff Inhibit" />
    
                        <CheckBox
                            android:id="@+id/phaseRotationCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="Phase Rotation Wrong" />
    
                        <CheckBox
                            android:id="@+id/usingDefaultDNPCheck"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text= "Using Default DNP Profile" />
                </LinearLayout>
        </ScrollView>
    
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal"
            android:layout_weight="1" >
    
            <Button
                android:id="@+id/button3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Back" />
    
            <Button
                android:id="@+id/button3"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Read" />
        </LinearLayout>
    </LinearLayout>