MOHAMED
MOHAMED

Reputation: 43528

layout_alignParentBottom does not work

I added an image in my android project. I tried to display it in the bottom of the scree with the following xml code in the image layout:

    android:layout_alignParentBottom="true"
    android:layout_marginRight="60dp"

But the image keep displaying in the up.

What is the problem here ?

My android version is 4.1

here after the whole xml file:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 
/*
   Session screen layout

   Copyright 2013 Thincast Technologies GmbH, Author: Martin Fleisz

   This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. 
   If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
 -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/session_root_view"
    >

    <!-- childs are specified bottom-up so that we have a correct z-order in our final layout -->
    <android.inputmethodservice.KeyboardView
        android:id="@+id/extended_keyboard"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:visibility="gone"
        />

    <com.freerdp.freerdpcore.presentation.ScrollView2D
        android:id="@+id/sessionScrollView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@id/extended_keyboard"
        android:scrollbars="horizontal|vertical"
        android:layout_alignParentTop="true"
        android:fillViewport="true"
        android:drawingCacheQuality="low"
        android:isScrollContainer="true"
        >

        <com.freerdp.freerdpcore.presentation.SessionView
            android:id="@+id/sessionView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:drawingCacheQuality="low"
            />

    </com.freerdp.freerdpcore.presentation.ScrollView2D>        

    <com.freerdp.freerdpcore.presentation.TouchPointerView
        android:id="@+id/touchPointerView"
        android:layout_width="match_parent"         
        android:layout_height="match_parent"
        android:src="@drawable/touch_pointer_default"
        android:visibility="invisible"
        />

    <com.freerdp.freerdpcore.presentation.TxxTouchPointerView
        android:id="@+id/tmmTouchPointerView"
        android:layout_width="match_parent"         
        android:layout_height="match_parent"
        android:layout_alignParentBottom="true"
        android:layout_marginRight="60dp"
        android:src="@drawable/tmm_touch_pointer_default"
        android:visibility="invisible"
        />

    <android.widget.ZoomControls
        android:id="@+id/zoomControls"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/sessionScrollView"
        android:layout_centerHorizontal="true"
        />

    <android.inputmethodservice.KeyboardView
        android:id="@+id/extended_keyboard_header"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:visibility="gone"
        android:layout_centerHorizontal="true"      
        />   

</RelativeLayout>

Upvotes: 2

Views: 5217

Answers (5)

hata
hata

Reputation: 12478

I guess the RelativeLayout itself is not set layout_height="match_parent".

update:

<RelativeLayout
    layout_height="match_parent"
    (...)
    >

    <ImageView
        layout_height="wrap_content"
        layout_alignParentBottom="true"
        (...)
        />

</RelativeLayout>

Upvotes: 0

leegor
leegor

Reputation: 532

You are setting its layout_height="match_parent" which means it always gets full height of its parent (your case is screen height), just set it to layout_height="wrap_content". Same thing with layout_width if needed

See this

    <com.freerdp.freerdpcore.presentation.TxxTouchPointerView
    android:id="@+id/tmmTouchPointerView"
    android:layout_width="wrap_content"         
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="60dp"
    android:src="@drawable/tmm_touch_pointer_default"
    android:visibility="invisible"
    />

Upvotes: 1

browep
browep

Reputation: 5107

Assuming this is the image in question

<com.freerdp.freerdpcore.presentation.TxxTouchPointerView
    android:id="@+id/tmmTouchPointerView"
    android:layout_width="match_parent"         
    android:layout_height="match_parent"
    android:layout_alignParentBottom="true"
    android:layout_marginRight="60dp"
    android:src="@drawable/tmm_touch_pointer_default"
    android:visibility="invisible"
    />

The layout_height is match_parent. This means that it will be as vertically large as the parent so layout_alignParentBottom="true" means nothing. Try with:

        android:layout_height="wrap_content"

Upvotes: 3

hasternet
hasternet

Reputation: 3596

You can use a LinearLayout instead, and set gravity to bottom as follows:

android:gravity="bottom"

Upvotes: 0

Luca Rocchi
Luca Rocchi

Reputation: 6484

put the image inside a Relative Layout

Upvotes: 2

Related Questions