Search code examples
androidandroid-linearlayout

wrap_content of LinearLayout which include FAB and text


I've added a LinearLayout which include a FAB and text to my XML. the height and width of the LinearLayout were set to 'wrap_content', but for some reason in the Design tab of the XML the box of the LinearLayout seems to have a larger and unnecessary height. How can I make the LinearLayout be at about the same height as the FAB and the text?

Thanks here is the XML 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"
tools:context="corp.blayzer.randomit.MainActivity">


<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="match_parent"
    android:layout_height="186dp"
    android:background="@color/mainBackGroundHalf1"
    android:gravity="center"
    android:orientation="vertical"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />


<android.support.design.widget.TextInputLayout
    android:id="@+id/minVal_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:gravity="center"
    app:layout_constraintEnd_toEndOf="@+id/linearLayout"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="@+id/linearLayout">


    <EditText
        android:id="@+id/minVal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:backgroundTint="@color/inputText"
        android:ems="10"
        android:hint="@string/minValue"
        android:inputType="number"
        android:selectAllOnFocus="false"
        android:singleLine="true"
        android:textAlignment="center"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        android:textColorHint="@color/inputText"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.design.widget.TextInputLayout>


<android.support.design.widget.TextInputLayout
    android:id="@+id/maxVal_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginEnd="8dp"
    android:layout_marginStart="8dp"
    android:layout_marginTop="8dp"
    android:gravity="center"
    app:layout_constraintEnd_toEndOf="@+id/linearLayout"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/minVal_layout">

    <EditText
        android:id="@+id/maxVal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginTop="16dp"
        android:backgroundTint="@color/inputText"
        android:ems="10"
        android:hint="@string/maxValue"
        android:inputType="number"
        android:selectAllOnFocus="false"
        android:singleLine="true"
        android:textAlignment="center"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        android:textColorHint="@color/inputText"
        app:layout_constraintBottom_toBottomOf="@+id/linearLayout"
        app:layout_constraintHorizontal_bias="0.502"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent" />

</android.support.design.widget.TextInputLayout>

<TextView
    android:id="@+id/textNumView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="16dp"
    android:lineSpacingExtra="8sp"
    android:text="@string/instructionsMainAct"
    android:textAppearance="@android:style/TextAppearance"
    android:textColor="@android:color/holo_red_light"
    android:textSize="18sp"
    android:textStyle="bold"
    app:layout_constraintHorizontal_bias="0.506"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/linearLayout"
    app:layout_constraintVertical_chainStyle="packed" />

<LinearLayout
    android:id="@+id/layOutBtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:orientation="horizontal"

    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textNumView">

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="252dp"
        android:layout_marginEnd="16dp"
        android:layout_marginStart="16dp"
        android:layout_weight="0"
        android:clickable="true"
        android:focusable="true"
        app:layout_constraintHorizontal_bias="0.498"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textNumView"
        app:srcCompat="@drawable/ic_change_history_black_24dp"
        tools:text="@string/GoButton" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="10"
        android:ellipsize="end"
        android:gravity="center"
        android:maxLines="1"
        android:text="@string/GoButton"
        android:textAlignment="center"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@android:color/black" />
</LinearLayout> </android.support.constraint.ConstraintLayout>

ScreenShot of the layout: enter image description here


Solution

  • You had a large margin for the fab: android:layout_marginBottom="252dp" which must be removed or changed.
    Use this:

    <?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"
        tools:context="corp.blayzer.randomit.MainActivity">
    
    
        <LinearLayout
            android:id="@+id/linearLayout"
            android:layout_width="match_parent"
            android:layout_height="186dp"
            android:background="@color/mainBackGroundHalf1"
            android:gravity="center"
            android:orientation="vertical"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
    
            <android.support.design.widget.TextInputLayout
                android:id="@+id/minVal_layout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginEnd="8dp"
                android:layout_marginStart="8dp"
                android:layout_marginTop="8dp"
                android:gravity="center"
                app:layout_constraintEnd_toEndOf="@+id/linearLayout"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="@+id/linearLayout">
    
    
            <EditText
                android:id="@+id/minVal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:backgroundTint="@color/inputText"
                android:ems="10"
                android:hint="@string/minValue"
                android:inputType="number"
                android:selectAllOnFocus="false"
                android:singleLine="true"
                android:textAlignment="center"
                android:textAppearance="@style/TextAppearance.AppCompat.Body1"
                android:textColorHint="@color/inputText"
                app:layout_constraintHorizontal_bias="0.502"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent"
                app:layout_constraintTop_toTopOf="parent" />
        </android.support.design.widget.TextInputLayout>
    
    
        <android.support.design.widget.TextInputLayout
            android:id="@+id/maxVal_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="8dp"
            android:gravity="center"
            app:layout_constraintEnd_toEndOf="@+id/linearLayout"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/minVal_layout">
    
            <EditText
                android:id="@+id/maxVal"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginBottom="8dp"
                android:layout_marginTop="16dp"
                android:backgroundTint="@color/inputText"
                android:ems="10"
                android:hint="@string/maxValue"
                android:inputType="number"
                android:selectAllOnFocus="false"
                android:singleLine="true"
                android:textAlignment="center"
                android:textAppearance="@style/TextAppearance.AppCompat.Body1"
                android:textColorHint="@color/inputText"
                app:layout_constraintBottom_toBottomOf="@+id/linearLayout"
                app:layout_constraintHorizontal_bias="0.502"
                app:layout_constraintLeft_toLeftOf="parent"
                app:layout_constraintRight_toRightOf="parent" />
    
        </android.support.design.widget.TextInputLayout>
    
        <TextView
            android:id="@+id/textNumView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:lineSpacingExtra="8sp"
            android:text="@string/instructionsMainAct"
            android:textAppearance="@android:style/TextAppearance"
            android:textColor="@android:color/holo_red_light"
            android:textSize="18sp"
            android:textStyle="bold"
            app:layout_constraintHorizontal_bias="0.506"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/linearLayout"
            app:layout_constraintVertical_chainStyle="packed" />
    
        <LinearLayout
            android:id="@+id/layOutBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="8dp"
            android:orientation="horizontal"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.5"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/textNumView">
    
            <android.support.design.widget.FloatingActionButton
                android:id="@+id/button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginEnd="16dp"
                android:layout_marginStart="16dp"
                android:layout_weight="0"
                android:clickable="true"
                android:focusable="true"
                app:srcCompat="@drawable/ic_change_history_black_24dp"
                tools:text="@string/GoButton" />
    
            <TextView
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="10"
                android:ellipsize="end"
                android:gravity="center"
                android:maxLines="1"
                android:text="@string/GoButton"
                android:textAlignment="center"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:textColor="@android:color/black" />
        </LinearLayout> 
    </android.support.constraint.ConstraintLayout>