constraint layout buttons at bottom not visible after clicking a text field

Viewed 1602

I have a problem with constraint layout. The layout contains a listview above a textfield with two buttons up. In the preview is alright: preview

though when I compile the app, the buttons are not visible: compiled app

And after clicking the textfield, making the keyboard pop up and close the keyboard again is moving the buttons up, so they are visible. But the space at the top, above the fragment tabs, where the app name usually stands, disappears : compiled app after clicking textfield

unfortunately I have no idea why and would like to see some suggestions.

the code :

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

<Button
    android:id="@+id/bFriendsAddSearchButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="8dp"
    android:layout_marginBottom="8dp"
    android:text="Suchen"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@+id/bFriendsAddAddButton"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent" />

<Button
    android:id="@+id/bFriendsAddAddButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:text="Hinzufügen"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toEndOf="@+id/bFriendsAddSearchButton" />

<EditText
    android:id="@+id/eTFriendsAddText"
    android:layout_width="wrap_content"
    android:layout_height="43dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    android:ems="10"
    android:hint="@string/name"
    android:inputType="textPersonName"
    app:layout_constraintBottom_toTopOf="@+id/bFriendsAddSearchButton"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/lvFriendsAddList" />

<ListView
    android:id="@+id/lvFriendsAddList"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:layout_marginEnd="8dp"
    android:layout_marginBottom="8dp"
    app:layout_constraintBottom_toTopOf="@+id/eTFriendsAddText"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

2 Answers

Use guideline at the bottom, before the 2button widgets. at the given code you are not closing the .

In the compiled after click the view comes up (because you open the keyboard) so it has to be a problem with the marginbottom/padding bottom of the main constrainLayout. It's an easy fix, no worries.

I would do it this way,

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
<LinearLayout

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

    <ListView
        android:id="@+id/lvFriendsAddList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        />
    <EditText
        android:id="@+id/eTFriendsAddText"
        android:layout_width="match_parent"
       android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:ems="10"
        android:hint="name"
        android:inputType="textPersonName"
        />
    <LinearLayout
        android:layout_width="match_parent"
        android:orientation="horizontal"
        android:layout_height="wrap_content">
    <Button
        android:id="@+id/bFriendsAddSearchButton"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginBottom="8dp"
        android:text="Suchen"
        android:layout_marginLeft="8dp" />

    <Button
        android:id="@+id/bFriendsAddAddButton"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:text="Hinzufügen"

        android:layout_marginRight="8dp" />

    </LinearLayout>


</LinearLayout>
</ScrollView>

Or you could use relativelayout

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

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ListView
        android:id="@+id/lvFriendsAddList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp" />

    <EditText
        android:id="@+id/eTFriendsAddText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lvFriendsAddList"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:ems="10"
        android:hint="name"
        android:inputType="textPersonName" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:orientation="horizontal">

        <Button
            android:id="@+id/bFriendsAddSearchButton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"
            android:text="Suchen" />

        <Button
            android:id="@+id/bFriendsAddAddButton"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginBottom="8dp"
            android:layout_weight="1"

            android:text="Hinzufügen" />

    </LinearLayout>


</RelativeLayout>
Related