LMaker
LMaker

Reputation: 1620

android - Adjust resize and scrollview not working with edittext

I have this form and when the soft keyboard is open, the screen does not resize and dont make scroll on it.

I really want to know why. Why my view does not scroll? Why does not resize?

This is my xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
android:fitsSystemWindows="true"

>


<ScrollView
    android:layout_width="match_parent"
    android:fillViewport="true"
    android:layout_height="wrap_content">

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

        <RelativeLayout
            android:id="@+id/relativeLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#fff">

            <android.support.v7.widget.Toolbar
                android:id="@+id/toolbar"
                android:layout_width="match_parent"
                android:layout_height="10dp"
                android:background="@android:color/transparent"
                android:visibility="invisible"
                app:navigationIcon="@drawable/ic_left_arrow"
                app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

            </android.support.v7.widget.Toolbar>

            <ImageView
                android:id="@+id/imageView9"
                android:layout_width="180dp"
                android:layout_height="70dp"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true"
                android:layout_below="@+id/toolbar"
                android:layout_gravity="center_vertical|center_horizontal"
                android:layout_marginLeft="10dp"
                android:src="@drawable/logo" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/imageView9"
                android:layout_alignParentEnd="true"
                android:layout_alignParentRight="true"
                android:layout_alignStart="@+id/imageView9"
                android:layout_below="@+id/imageView9"
                android:layout_marginLeft="15dp"
                android:paddingBottom="6dp"
                android:text="OFERTAR OU \nSIMULAR LANCE"
                android:textColor="#eb262a"
                android:textSize="20sp"
                android:textStyle="bold" />

        </RelativeLayout>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:id="@+id/linearLayout2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_margin="15dp"
                android:orientation="horizontal">


                <RadioButton
                    android:id="@+id/livre"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Lance Livre" />

                <RadioButton
                    android:id="@+id/fixo"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_weight="1"
                    android:text="Lance Fixo" />
            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/linearLayout2"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:orientation="vertical">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:orientation="horizontal">

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1">

                        <android.support.design.widget.TextInputLayout
                            android:id="@+id/text_input_layout"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Percentual do lance">

                            <EditText
                                android:id="@+id/percent"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_toLeftOf="@+id/textView12"
                                android:layout_toStartOf="@+id/textView12"
                                android:ems="10"
                                android:inputType="numberDecimal"
                                android:nextFocusDown="@+id/value"
                                android:textSize="14dp" />

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

                        <TextView
                            android:id="@+id/textView12"
                            android:layout_width="25dp"
                            android:layout_height="wrap_content"
                            android:layout_alignParentEnd="true"
                            android:layout_alignParentRight="true"
                            android:layout_centerVertical="true"
                            android:text="%"
                            android:textColor="#000"
                            android:textSize="16dp"
                            android:textStyle="bold" />

                    </RelativeLayout>

                    <RelativeLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_weight="1">

                        <android.support.design.widget.TextInputLayout
                            android:id="@+id/text_input_layout2"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Valor do lance">

                            <EditText
                                android:id="@+id/value"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:ems="10"
                                android:inputType="numberDecimal"
                                android:textSize="14dp" />

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

                </LinearLayout>

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/text_input_layout3"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="20dp"
                    android:hint="Número do Protocolo">

                    <EditText
                        android:id="@+id/protocol"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:ems="10"
                        android:inputType="number"
                        android:textSize="14dp" />
                </android.support.design.widget.TextInputLayout>
            </LinearLayout>
        </RelativeLayout>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="30dp"
            android:orientation="horizontal"
            android:weightSum="10">

            <Button
                android:id="@+id/limpar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="5"
                android:backgroundTint="@android:color/holo_red_light"
                android:text="Limpar"
                android:textColor="#ffffff"
                android:visibility="visible" />

            <Button
                android:id="@+id/simular"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="5"
                android:backgroundTint="@android:color/holo_red_light"
                android:text="Simular"
                android:textColor="#ffffff"
                android:visibility="visible" />

            <Button
                android:id="@+id/registrar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="5"
                android:backgroundTint="@android:color/holo_red_light"
                android:text="Registrar"
                android:textColor="#ffffff"
                android:visibility="gone" />
        </LinearLayout>

        <TextView
            android:id="@+id/label"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="15dp"
            android:layout_marginRight="15dp"
            android:layout_marginTop="20dp"
            android:text="Lance Fixo é definido em 30%"
            android:textAlignment="center"
            android:textColor="#000"
            android:textSize="16sp"
            android:visibility="gone" />
    </LinearLayout>
</ScrollView>
</LinearLayout>

I already tried set match_parent to scrollview. And I have this in my manifest android:windowSoftInputMode="stateAlwaysHidden|adjustResize".

Upvotes: 3

Views: 4972

Answers (4)

Deepak Tiwari
Deepak Tiwari

Reputation: 82

If you are using "FULLSCREEN" theme for your application or activity then the "RESIZE" functionality will not work, you should use "NoTitleBar" theme without "FULLSCREEN". It will work 100%. And you should use "RelativeLayout" in place of parent layout(main linearlayout).

Upvotes: 4

DolDurma
DolDurma

Reputation: 17321

add this line to activity which you want to resize on opening soft keyboard:

android:windowSoftInputMode="adjustResize"

UPDATE POST:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
              android:fitsSystemWindows="true"

    >


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical">

            <RelativeLayout
                android:id="@+id/relativeLayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="#fff">

                <android.support.v7.widget.Toolbar
                    android:id="@+id/toolbar"
                    android:layout_width="match_parent"
                    android:layout_height="10dp"
                    android:background="@android:color/transparent"
                    android:visibility="invisible"
                    app:navigationIcon="@drawable/ic_left_arrow"
                    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

                </android.support.v7.widget.Toolbar>

                <ImageView
                    android:id="@+id/imageView9"
                    android:layout_width="180dp"
                    android:layout_height="70dp"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentStart="true"
                    android:layout_below="@+id/toolbar"
                    android:layout_gravity="center_vertical|center_horizontal"
                    android:layout_marginLeft="10dp"
                    android:src="@drawable/logo"/>

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignLeft="@+id/imageView9"
                    android:layout_alignParentEnd="true"
                    android:layout_alignParentRight="true"
                    android:layout_alignStart="@+id/imageView9"
                    android:layout_below="@+id/imageView9"
                    android:layout_marginLeft="15dp"
                    android:paddingBottom="6dp"
                    android:text="OFERTAR OU \nSIMULAR LANCE"
                    android:textColor="#eb262a"
                    android:textSize="20sp"
                    android:textStyle="bold"/>

            </RelativeLayout>

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="0dp"
                android:layout_weight="1">

                <LinearLayout
                    android:id="@+id/linearLayout2"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="15dp"
                    android:orientation="horizontal">


                    <RadioButton
                        android:id="@+id/livre"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="Lance Livre"/>

                    <RadioButton
                        android:id="@+id/fixo"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:text="Lance Fixo"/>
                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/linearLayout2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginRight="15dp"
                    android:orientation="vertical">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="15dp"
                        android:orientation="horizontal">

                        <RelativeLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1">

                            <android.support.design.widget.TextInputLayout
                                android:id="@+id/text_input_layout"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:hint="Percentual do lance">

                                <EditText
                                    android:id="@+id/percent"
                                    android:layout_width="wrap_content"
                                    android:layout_height="wrap_content"
                                    android:layout_toLeftOf="@+id/textView12"
                                    android:layout_toStartOf="@+id/textView12"
                                    android:ems="10"
                                    android:inputType="numberDecimal"
                                    android:nextFocusDown="@+id/value"
                                    android:textSize="14dp"/>

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

                            <TextView
                                android:id="@+id/textView12"
                                android:layout_width="25dp"
                                android:layout_height="wrap_content"
                                android:layout_alignParentEnd="true"
                                android:layout_alignParentRight="true"
                                android:layout_centerVertical="true"
                                android:text="%"
                                android:textColor="#000"
                                android:textSize="16dp"
                                android:textStyle="bold"/>

                        </RelativeLayout>

                        <RelativeLayout
                            android:layout_width="match_parent"
                            android:layout_height="match_parent"
                            android:layout_weight="1">

                            <android.support.design.widget.TextInputLayout
                                android:id="@+id/text_input_layout2"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                android:hint="Valor do lance">

                                <EditText
                                    android:id="@+id/value"
                                    android:layout_width="match_parent"
                                    android:layout_height="wrap_content"
                                    android:ems="10"
                                    android:inputType="numberDecimal"
                                    android:textSize="14dp"/>

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

                    </LinearLayout>

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/text_input_layout3"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="20dp"
                        android:hint="Número do Protocolo">

                        <EditText
                            android:id="@+id/protocol"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:ems="10"
                            android:inputType="number"
                            android:textSize="14dp"/>
                    </android.support.design.widget.TextInputLayout>
                </LinearLayout>
            </RelativeLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_marginTop="30dp"
                android:orientation="horizontal"
                android:weightSum="10">

                <Button
                    android:id="@+id/limpar"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:backgroundTint="@android:color/holo_red_light"
                    android:text="Limpar"
                    android:textColor="#ffffff"
                    android:visibility="visible"/>

                <Button
                    android:id="@+id/simular"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:backgroundTint="@android:color/holo_red_light"
                    android:text="Simular"
                    android:textColor="#ffffff"
                    android:visibility="visible"/>

                <Button
                    android:id="@+id/registrar"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_weight="5"
                    android:backgroundTint="@android:color/holo_red_light"
                    android:text="Registrar"
                    android:textColor="#ffffff"
                    android:visibility="gone"/>
            </LinearLayout>

            <TextView
                android:id="@+id/label"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="15dp"
                android:layout_marginRight="15dp"
                android:layout_marginTop="20dp"
                android:text="Lance Fixo é definido em 30%"
                android:textAlignment="center"
                android:textColor="#000"
                android:textSize="16sp"
                android:visibility="gone"/>
        </LinearLayout>
    </ScrollView>
</LinearLayout>

Upvotes: -1

LMaker
LMaker

Reputation: 1620

I found the problem. I'm using <item name="android:windowFullscreen">true</item> and when the fullscreen flags are actived, the resize dont work.

Upvotes: 1

Rohit Padma
Rohit Padma

Reputation: 603

If you want to resize the activity when the keyboard pops up you need to specify a line of code in manifest file inside activity tag :

android:windowSoftInputMode="adjustResize"

Refer this link for more details : https://developer.android.com/training/keyboard-input/visibility.html

You can even try to adjust screen in activity put the below code in you activity onCreate method:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);

Hope this should help!!

Upvotes: -1

Related Questions