Don
Don

Reputation: 987

Can't display my button at the bottom of a list of layouts

I have spent hours on this problem, I hope somebody can help me. Sorry in advance if the question is stupid, I am fairly new to android development and also, I am using an app builder which has generated already a lot of code. I am basically trying to tweak this code with what I want...

The question is just about xml layouts, I don't think it involves code. I want to display a simple button at the bottom of this screen.

So I have this screen which builds a group of buttons in a grid. I also display an ad banner at the top. The parameters of these buttons are specified through the web app builder on a web interface. No problem with these buttons. They are displayed correctly in this screen layout below:

    <?xml version="1.0" encoding="UTF-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/lib/com.google.ads"
android:id="@+id/containerView"
android:background="@android:color/transparent"    
android:padding="0dip"
android:layout_margin="0dip"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<com.google.ads.AdView android:id="@+id/adView"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     ads:adUnitId="123"
                     ads:adSize="SMART_BANNER"
                     ads:testDevices="123"
                     ads:loadAdOnCreate="true">
</com.google.ads.AdView>



    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/verticalScrollView" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent">

        <TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/tableLayout" 
            android:layout_width="fill_parent" 
            android:layout_height="fill_parent">
        </TableLayout>

    </ScrollView>

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/containerViewHorizontal"
            android:background="@android:color/transparent"    
            android:padding="0dip"
            android:layout_margin="0dip"
            android:orientation="horizontal"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

            <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/containerViewHorizontalBottom"
                    android:background="@android:color/transparent"    
                    android:padding="0dip"
                    android:layout_margin="0dip"
                    android:orientation="vertical"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content">

                <HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
                    android:id="@+id/horizontalScrollView" 
                    android:layout_width="fill_parent" 
                    android:layout_height="wrap_content">

                    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                        android:id="@+id/containerHorizontalButtons"
                        android:background="@android:color/transparent"    
                        android:padding="0dip"
                        android:layout_margin="0dip"
                        android:orientation="horizontal"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content">

                    </LinearLayout>

                </HorizontalScrollView> 

            </LinearLayout>

    </RelativeLayout>

Now what I am trying to do, is to add at the bottom of this group of buttons, a button that does not belong to the list generated through the web app builder, but manually created:

<Button
android:id="@+id/bmenu2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"     
android:text="Button" />

I have already taken care of the code for this button, it works well, but I don't manage to display it at the bottom of my screen.

I guess it has to do with the general layout of the screen. I have to admit I am completely lost in the series of layout nested in one another, I don't understand what is exactly doing what.

If that helps, I have managed to display my button at the top of the screen, even just below my ad banner. But not at the bottom.

Also if that helps, I guess one of the layout takes up the whole heightspace (the scrollview?), living 0 height for the button I want to add...

Thanks a lot for your time and if you can help me!

Upvotes: 0

Views: 413

Answers (1)

Samer
Samer

Reputation: 536

Juyt implement a Linear layout instead of a relative one for the list and the button. Then give the list a height of 0dp and a weight of 1 The button will have whatever attributes:

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

<ListView
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1" >
</ListView>

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

</LinearLayout>

Upvotes: 1

Related Questions