tasgr86
tasgr86

Reputation: 309

Button to bottom of screen

I have a layout that looks like this,

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <include
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                layout="@layout/layout1" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"/>

            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="button"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

I want the button to appear at the bottom of the screen which works fine if use it with an activity.When i try to use it with a fragment though (inside a FrameLayout) the button doesn't show at all.Any suggestions?

EDIT

Thanks for your answers but i've already tried all that.Let me clarify something.I have a main layout that contains a Toolbar and a Framelayout.This FrameLayout is used for my 4-5 app's Fragments.One of them has that previous layout i posted.

Upvotes: 0

Views: 1670

Answers (5)

Dileep Patel
Dileep Patel

Reputation: 1988

tasgr86 try to this code hope this can do some idea or help..

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_above="@+id/button">

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

        <include
            layout="@layout/layout1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Test" />

    </LinearLayout>
</ScrollView>

<Button
    android:id="@+id/button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginBottom="5dp"
    android:text="button" />

</RelativeLayout>

Upvotes: 0

Anil
Anil

Reputation: 1615

You need set property for ScrollView

android:fillViewport="true"

and the add below line to your button

android:layout_alignParentBottom="true"
android:layout_gravity="center_horizontal"

I have Edited your code just try this

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<ScrollView
    android:layout_width="match_parent"
    android:fillViewport="true"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="vertical"
        android:layout_height="match_parent">

        <include
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            layout="@layout/layout1" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"/>

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:text="button"
            android:layout_gravity="center_horizontal" />

    </LinearLayout>
</ScrollView>

Upvotes: 0

Mahesh Babariya
Mahesh Babariya

Reputation: 4570

Use layout_weight

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <include
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                layout="@layout/layout1" />

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1" />

        </LinearLayout>
    </ScrollView>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button" />

</LinearLayout>

Upvotes: 1

Vishal Chhodwani
Vishal Chhodwani

Reputation: 2567

You should use ScrollView as a root layout than LinearLayout here.

And try this property inside scrollview :

android:fillViewport="true"

May be it will help you.

Upvotes: 0

Alessandro Argentieri
Alessandro Argentieri

Reputation: 3215

try to use:

android:layout_gravity="bottom"

or:

android:layout_alignParentBottom="true"

in the botton tag.

Upvotes: 0

Related Questions