I'm developing an android app using a constraint layout, but when the keyboard is opened, the layout breaks and does not return until the app has been restarted. The textEdit box alos remains highlighted after the keyboard has been closed, which is unwanted behavior.
How can I edit the GUI so that the layout returns to its proper state after the keyboard has been closed and the textEdit box is unfocused?
As a side note, talk to me like I know nothing, because I do know nothing about GUI's or android development. I'm working on this app as part of a group project in one of my CS classes (the course material isn't on android or GUI development).
Below is the XML and images of whats happening.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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=".MainActivity"
>
<ScrollView
android:layout_width="362dp"
android:layout_height="194dp"
android:layout_marginTop="360dp"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="25dp"
android:layout_marginBottom="177dp"
android:layout_marginEnd="22dp"
app:layout_constraintEnd_toEndOf="parent"
android:id="@+id/nextGuesses"
android:backgroundTint="#7E55C8"
android:background="#A8A8A8"
app:layout_constraintVertical_bias="0.0"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintBottom_toBottomOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:backgroundTint="#673AB7"/>
</ScrollView>
<TextView
android:id="@+id/prevGuess5"
android:layout_width="80dp"
android:layout_height="26dp"
android:text="5."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="223dp"
android:layout_marginTop="306dp"
android:layout_marginEnd="108dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#A6A6A6"
android:layout_marginBottom="399dp"
android:textAlignment="viewStart"
android:background="#A5A5A5"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/prevGuess4"
android:layout_width="85dp"
android:layout_height="29dp"
android:text="4."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="95dp"
android:layout_marginTop="306dp"
android:layout_marginEnd="231dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#A6A6A6"
android:layout_marginBottom="396dp"
android:textAlignment="viewStart"
android:background="#A5A5A5"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/prevGuess3"
android:layout_width="86dp"
android:layout_height="30dp"
android:text="3."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="278dp"
android:layout_marginTop="266dp"
android:layout_marginEnd="47dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#A6A6A6"
android:layout_marginBottom="423dp"
android:textAlignment="viewStart"
android:background="#A5A5A5"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/prevGuess2"
android:layout_width="88dp"
android:layout_height="31dp"
android:text="2."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="156dp"
android:layout_marginTop="266dp"
android:layout_marginEnd="167dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#A6A6A6"
android:layout_marginBottom="422dp"
android:textAlignment="viewStart"
android:background="#A5A5A5"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/prevGuess1"
android:layout_width="98dp"
android:layout_height="31dp"
android:text="1."
android:layout_marginEnd="280dp"
app:layout_constraintEnd_toEndOf="parent"
android:backgroundTint="#979797"
android:textAlignment="viewStart"
android:background="#A5A5A5"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="34dp"
android:layout_marginTop="266dp"
android:layout_marginBottom="434dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"/>
<TextView
android:text="Current Guess:"
android:layout_width="230dp"
android:layout_height="52dp"
android:id="@+id/currentGuess3"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="28dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="16dp"
android:layout_marginEnd="325dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="51dp"
app:layout_constraintBottom_toTopOf="@+id/gridLayout"
app:layout_constraintHorizontal_bias="0.075"
app:layout_constraintVertical_bias="0.0"
android:textSize="34sp"/>
<Button
android:id="@+id/undoGuess"
android:layout_width="173dp"
android:layout_height="60dp"
android:text="Undo Last Guess"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="24dp"
android:layout_marginTop="582dp"
android:layout_marginEnd="214dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#5D0FB5"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginBottom="89dp"/>
<Button
android:id="@+id/startOver"
android:layout_width="173dp"
android:layout_height="60dp"
android:text="Start Over"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="24dp"
android:layout_marginTop="646dp"
android:layout_marginEnd="214dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#A30000"
android:layout_marginBottom="25dp"
app:layout_constraintTop_toTopOf="parent"/>
<Button
android:id="@+id/helpButton"
android:layout_width="102dp"
android:layout_height="60dp"
android:text="Help?"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="278dp"
android:layout_marginTop="655dp"
android:layout_marginEnd="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#939393"
android:layout_marginBottom="16dp"
app:layout_constraintTop_toTopOf="parent"/>
<GridLayout
android:id="@+id/gridLayout"
android:layout_width="381dp"
android:layout_height="152dp"
android:layout_marginStart="12dp"
android:layout_marginTop="70dp"
android:layout_marginEnd="12dp"
android:background="@color/cardview_dark_background"
android:columnCount="5"
android:rowCount="2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.333"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:context=".MainActivity">
<EditText
android:id="@+id/gridInput_00"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="0"
android:layout_column="0"
android:ems="10"
android:gravity="center"
android:inputType="text"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="28dp"
android:textAllCaps="true"
android:textAlignment="center"/>
<EditText
android:id="@+id/gridInput_01"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="0"
android:layout_column="1"
android:ems="10"
android:gravity="center"
android:inputType="text"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="28dp"
android:textAllCaps="true"
android:textAlignment="center"/>
<EditText
android:id="@+id/gridInput_02"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="0"
android:layout_column="2"
android:ems="10"
android:gravity="center"
android:inputType="text"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="28dp"
android:textAllCaps="true"/>
<EditText
android:id="@+id/gridInput_03"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="0"
android:layout_column="3"
android:ems="10"
android:gravity="center"
android:inputType="text"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="28dp"
android:textAllCaps="true"/>
<EditText
android:id="@+id/gridInput_04"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="0"
android:layout_column="4"
android:ems="10"
android:gravity="center"
android:inputType="text"
android:maxLength="1"
android:textColor="@color/white"
android:textSize="28dp"
android:textAllCaps="true"/>
<Button
android:id="@+id/gridColor_00"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="1"
android:layout_column="0"
android:backgroundTint="#D3D3D3"/>
<Button
android:id="@+id/gridColor_01"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="1"
android:layout_column="1"
android:backgroundTint="#D3D3D3"/>
<Button
android:id="@+id/gridColor_02"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="1"
android:layout_column="2"
android:backgroundTint="#D3D3D3"/>
<Button
android:id="@+id/gridColor_03"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="1"
android:layout_column="3"
android:backgroundTint="#D3D3D3"/>
<Button
android:id="@+id/gridColor_04"
android:layout_width="76dp"
android:layout_height="76dp"
android:layout_row="1"
android:layout_column="4"
android:backgroundTint="#D3D3D3"/>
/>
</GridLayout>
<Button
android:id="@+id/enterGuess"
android:layout_width="173dp"
android:layout_height="60dp"
android:text="Enter Guess"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="214dp"
android:layout_marginTop="582dp"
android:layout_marginEnd="24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"
android:backgroundTint="#2F602B"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginBottom="89dp"/>
<TextView
android:text="Current Guess:"
android:layout_width="230dp"
android:layout_height="52dp"
android:id="@+id/currentGuess"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="28dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="16dp"
android:layout_marginEnd="325dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginBottom="51dp"
app:layout_constraintBottom_toTopOf="@+id/gridLayout"
app:layout_constraintHorizontal_bias="0.075"
app:layout_constraintVertical_bias="0.0"
android:textSize="34sp"/>
<TextView
android:text="Previous Guesses:"
android:layout_width="148dp"
android:layout_height="25dp"
android:id="@+id/previousGuesses"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="32dp"
android:layout_marginBottom="8dp"
app:layout_constraintBottom_toTopOf="@+id/prevGuess2"
android:layout_marginEnd="200dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="13dp"
app:layout_constraintTop_toBottomOf="@+id/gridLayout"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0"/>
<androidx.constraintlayout.widget.Guideline
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/guideline2"
app:layout_constraintGuide_begin="20dp"
android:orientation="vertical"/>
</androidx.constraintlayout.widget.ConstraintLayout>
I've tried constraining all of the UI elements to the border of the parent/screen