Bhagyaraj Haranale
Bhagyaraj Haranale

Reputation: 33

After geting the edittext text bigger it goes below all other views on the layout

I am using a EditText to get the message from the user but when the message length increases and the EditText goes below other elements on the layout. what should I do prevent it going below those elements? It must be at top of every other element

Tried this in manifest file but dosen't work.

android:windowSoftInputMode="adjustResize"




<?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=".GroupChatActivity"
    android:background="#fff">

    <TextView
        android:id="@+id/admin_text"
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:text="ONLY FACULTY CAN SEND MESSAGE"
        android:textSize="18sp"
        android:textColor="@android:color/black"
        android:textAlignment="center"
        android:padding="15dp"
        android:background="@drawable/text_bg"
        android:visibility="invisible"
        />

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/group_chat_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/group_chat_layout"
        android:visibility="visible"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="75dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/text_bg"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent">

        <EditText
            android:id="@+id/group_message_text"
            android:layout_width="293dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="4dp"
            android:layout_marginEnd="35dp"
            android:layout_marginBottom="4dp"
            android:background="@color/transparent"
            android:hint="Text Goes Here"
            android:padding="10dp"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/black"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent">

            <ImageButton
                android:id="@+id/group_chat_content_add_button"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:background="@color/transparent"
                android:src="@drawable/attach_file" />

        </FrameLayout>

    </androidx.constraintlayout.widget.ConstraintLayout>

    <ImageButton
        android:id="@+id/group_chat_send_message_button"
        android:layout_width="60dp"
        android:layout_height="50dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="10dp"
        android:background="@color/transparent"
        android:src="@drawable/send_image"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toEndOf="@+id/group_chat_layout"
        android:visibility="invisible"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/group_chat_recycler_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="65dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="70dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <FrameLayout
        android:id="@+id/content_screen"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_marginStart="12dp"
        android:layout_marginEnd="12dp"
        android:layout_marginBottom="8dp"
        app:layout_constraintBottom_toTopOf="@+id/admin_text"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent">
    </FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>

Upvotes: 1

Views: 96

Answers (2)

Alireza Bideli
Alireza Bideli

Reputation: 874

If you want to have dynamic EditText You can use android:maxLines in Your EditText XML

If you want to have some behaviour between your elements You can use CoordinatorLayout

So as your EditText need to be on the top of all elements you must use CoordinatorLayout and your final Code must be changed like below

   <?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout 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"
    android:background="#fff"
    tools:context=".GroupChatActivity">


    <TextView
        android:id="@+id/admin_text"
        android:layout_width="match_parent"
        android:layout_height="54dp"
        android:layout_gravity="top"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/text_bg"
        android:padding="15dp"
        android:text="ONLY FACULTY CAN SEND MESSAGE"
        android:textAlignment="center"
        android:textColor="@android:color/black"
        android:textSize="18sp"
        android:visibility="visible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/group_chat_toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="top"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        android:theme="?attr/actionBarTheme" />

    <LinearLayout
        android:id="@+id/group_chat_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"
        android:layout_marginStart="8dp"
        android:layout_marginBottom="8dp"
        android:background="@drawable/text_bg"
        android:orientation="horizontal"
        android:visibility="visible">

        <ImageButton
            android:id="@+id/group_chat_content_add_button"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@color/transparent"
            android:src="@drawable/attach_file" />

        <EditText
            android:id="@+id/group_message_text"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="8dp"
            android:layout_marginTop="4dp"
            android:layout_marginEnd="35dp"
            android:layout_marginBottom="4dp"
            android:layout_weight="4"
            android:background="@color/transparent"
            android:hint="Text Goes Here"
            android:maxLines="3"
            android:padding="10dp"
            android:textColor="@android:color/black"
            android:textColorHint="@android:color/black"
            android:textSize="18sp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />


    </LinearLayout>

    <ImageButton
        android:id="@+id/group_chat_send_message_button"
        android:layout_width="60dp"
        android:layout_height="50dp"
        android:layout_marginStart="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="10dp"
        android:background="@color/transparent"
        android:src="@drawable/send_image"
        android:visibility="invisible"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toEndOf="@+id/group_chat_layout" />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/group_chat_recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginStart="8dp"
        android:layout_marginTop="60dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="70dp"
        app:layout_constraintBottom_toBottomOf="@id/group_chat_layout"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/group_chat_toolbar" />

    <FrameLayout
        android:id="@+id/content_screen"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        android:layout_gravity="bottom"
        android:layout_marginStart="12dp"
        android:layout_marginEnd="12dp"
        android:layout_marginBottom="80dp" />
</androidx.coordinatorlayout.widget.CoordinatorLayout>

Upvotes: 1

milad salimi
milad salimi

Reputation: 1660

First way

For different Android versions, the best ways is to include these parameters :

   android:lines="1"
   android:maxLines="1"
   android:singleLine="true"

Second way

You can disable the enter (new line) key, set the input type to text :

android:inputType="text"

Upvotes: 1

Related Questions