Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Edit Text error overlaps other components

I have a problem that error message displayed by edit text overlaps other components on layout.

Does anybody have an idead how to display error message behind top and bottom layouts?

Little bit about structure: Top red and bottom grey parts Linear Layouts. Main middle content is Frame Layout, whose content is handled by application. In this case there are several edit texts wrapped in Scroll View.

<android.support.v4.widget.CustomDrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
tools:context=".MainActivity">

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:fitsSystemWindows="true">

    <com.custom.TitlebarLayout
        android:id="@+id/titlebarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"/>


    <FrameLayout
        android:id="@+id/contentContainer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/white"
        android:layout_gravity="top"/>

    <com.custom.ButtonsToolbarLayout
        android:id="@+id/buttonsToolbarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:gravity="center_vertical|left"
        android:orientation="horizontal"/>

</RelativeLayout>

Inside contentContainer is below layout:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:tools="http://schemas.android.com/tools"
         xmlns:msa="http://schemas.android.com/apk/res-auto"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         tools:context=".fragment.addressedit.AddressEditFragment"
         android:id="@+id/frame_layout_address_edit">

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/scrollview_address_dialog"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:isScrollContainer="true"
        android:orientation="horizontal">

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/linearlayout_address_top"
            android:hint="Name"
            android:maxLength="30"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="textCapCharacters"
            android:tag="etx_name1"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_name2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_name"
            android:hint="Name2"
            android:maxLength="30"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="textCapCharacters"
            android:tag="etx_name2"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_street"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_name2"
            android:hint="Street"
            android:maxLength="30"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="textCapCharacters"
            android:tag="etx_street"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_houseno"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_street"
            android:hint="House No."
            android:maxLength="8"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="number"
            msa:alternativeInputType="textNoSuggestions"
            android:tag="etx_house_no"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_postcode"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_houseno"
            android:hint="Postcode"
            android:maxLength="10"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="textPostalAddress"
            android:tag="etx_postcode1"
            msa:validation="postcode"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_city"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_postcode"
            android:hint="City"
            android:maxLength="30"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="textCapCharacters"
            android:tag="etx_city"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_country"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_city"
            android:hint="Country"
            android:maxLength="5"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="textCapCharacters"
            android:tag="etx_country"/>

        <com.custom.editview.EditViewLayout
            android:id="@+id/edittext_address_phone"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_below="@+id/edittext_address_country"
            android:hint="Phone"
            android:maxLength="20"
            android:maxLines="1"
            android:singleLine="true"
            android:inputType="phone"
            android:tag="etx_phone1"/>

    </RelativeLayout>

</ScrollView>

like image 733
swiki Avatar asked Apr 29 '26 01:04

swiki


1 Answers

Just do a simple tweak and you're good to go..

scrollView.setOnTouchListener(new View.OnTouchListener() {
 @Override
        public boolean onTouch(View v, MotionEvent event) {
            addressName.clearFocus();
            addressName2.clearFocus();
            houseNo.clearFocus();
            phone.clearFocus();
            return false;
        }
    })

;

like image 104
Alok Singh Avatar answered Apr 30 '26 14:04

Alok Singh