bigb055
bigb055

Reputation: 308

How to hide only part of layout when soft keyboard pops up

My layout is split into 3 sections (see screenshot). When the soft keyboard appears it partly hides section 1 and completely hides section 2. However, I need it to hide only section 2 and keep 1 and 3 fully visible. I tried using ScrollView as the outermost view but it leads to overlapping the section 3 when keyboard pops up instead of pushing it upwards. Can you suggest some solution on how to achieve this?

Layout code:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true">

    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/formWeHandelswareColor"
        android:weightSum="10">

        <TableLayout
            android:id="@+id/Anlieferungkopf"
            android:layout_width="match_parent"
            android:layout_weight="2.5"
            android:layout_height="0dp">

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:text="Scan NVE"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextScanNve"
                    android:layout_column="2"
                    android:textColor="@android:color/black"
                    android:width="120dp"
                    android:layout_gravity="bottom"
                    android:layout_span="2"
                    android:singleLine="true"
                    android:textSize="14dip" />  
                <TextView
                    android:layout_column="4"   
                    android:textColor="@android:color/black"                
                    android:text="Ord. Lief."
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxAccepted"
                    android:layout_column="5"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:layout_column="6"       
                    android:textColor="@android:color/black"            
                    android:text="Platz"
                    android:layout_gravity="center_vertical"/>
                <Spinner
                    android:id="@+id/spinnerPlace"
                    android:layout_column="7"
                    android:layout_gravity="center_vertical"/>
            </TableRow>

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:text="WE Nummer"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextReceiptNo"
                    android:layout_column="2"
                    android:layout_span="2"
                    android:textColor="@android:color/black"
                    android:layout_width="fill_parent"
                    android:layout_gravity="bottom"
                    android:singleLine="true"
                    android:textSize="14dip" /> 
                <TextView
                    android:layout_column="4"
                    android:textColor="@android:color/black"    
                    android:text="Lieferant"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextVendor"
                    android:enabled="false"
                    android:layout_column="5"
                    android:textColor="@android:color/black"
                    android:textSize="14dip"
                    android:layout_span="5"
                    android:width="120dp"
                    android:layout_gravity="bottom"
                    android:singleLine="true"/>  
            </TableRow>

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:text="Bestellnummer"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextBestellnummer"
                    android:layout_column="2"
                    android:layout_width="150dip"
                    android:textColor="@android:color/black"
                    android:textSize="14dip"
                    android:layout_gravity="bottom"
                    android:singleLine="true"/>
                <Button
                    android:id="@+id/btnAvisOrderNo"
                    android:layout_column="3"
                    android:text="->"/>
                <TextView
                    android:layout_column="4"
                    android:textColor="@android:color/black"
                    android:text="LKW Temp.-Stat."
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxLkwTempStat"
                    android:layout_column="5"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:layout_column="6"
                    android:textColor="@android:color/black"
                    android:text="Temp. LKW"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextTempLKW"
                    android:layout_column="7"
                    android:textColor="@android:color/black"
                    android:width="120dp"
                    android:layout_gravity="bottom"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Warentemp."
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:layout_column="9"
                    android:id="@+id/editTextWarentemp"
                    android:width="120dp"
                    android:textColor="@android:color/black"
                    android:textSize="14dip"
                    android:singleLine="true"/>
            </TableRow>

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:text="Frachtführer"
                    android:layout_gravity="center_vertical"/>
                <Spinner
                    android:id="@+id/spinnerCarrier"
                    android:layout_column="2"
                    android:layout_span="2"
                    android:layout_gravity="bottom"/>
                <TextView
                    android:layout_column="4"
                    android:textColor="@android:color/black"
                    android:text="KFZ Kennz."
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextKfzKennz"
                    android:layout_column="5"
                    android:textColor="@android:color/black"
                    android:width="120dp"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:layout_column="6"
                    android:textColor="@android:color/black"
                    android:text="Fahrer"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextFahrer"
                    android:layout_column="7"
                    android:textColor="@android:color/black"
                    android:width="120dp"
                    android:singleLine="true"
                    android:textSize="14dip" />
            </TableRow> 

            <TableRow
                android:layout_height="0dp">
                <Button
                    android:id="@+id/buttonCreateGoodsReceipt"
                    android:layout_column="1"
                    android:layout_span="3"
                    android:text="Wareneing. erstellen"/>
                <Button
                    android:id="@+id/buttonFinishGoodsReceipt"
                    android:layout_column="4"
                    android:layout_span="3"
                    android:text="Wareneing. abschließen"/>
                <Button
                    android:id="@+id/buttonCancelDelivery"
                    android:layout_column="7"
                    android:layout_span="3"
                    android:text="Anlieferung ablehnen"/>
            </TableRow>

        </TableLayout>      

        <TableLayout
            android:id="@+id/Anliefungpos"
            android:layout_width="match_parent"
            android:layout_weight="3.5"
            android:layout_height="0dp"
            android:stretchColumns="*">

            <!--Headers-->
            <TableRow
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:weightSum="8">
                <TextView 
                    android:text="Artikel"
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="Benennung"
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="Menge Avis"
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="Einheit"
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="Menge gelief."
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="Anz. Pal."
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="NVE"
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
                <TextView 
                    android:text="Status"
                    android:textSize="18dip"
                    android:textColor="@android:color/black"
                    android:layout_gravity="left|center_vertical"
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"/>
            </TableRow>

            <ListView
                android:listSelector="@drawable/ListViewRowSelector"
                android:id="@+id/ListViewAnliefungPos"/>

        </TableLayout>

        <TableLayout
            android:id="@+id/AnlieferungPositionLHM"
            android:layout_width="match_parent"
            android:layout_weight="4"
            android:layout_height="0dp">

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:text="Scan NVE/GS1"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextLhmScanNve"
                    android:layout_column="2"
                    android:width="250dp"
                    android:textColor="@android:color/black"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <Button
                    android:id="@+id/btnOpenScan"
                    android:layout_column="3"
                    android:text="Scan abschließen"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Qualitätssicherung"
                    android:layout_gravity="top"/>  
            </TableRow>

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <EditText
                    android:id="@+id/editTextNotifications"
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:layout_height="wrap_content"
                    android:layout_span="7"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Le defekt"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxLeDefect"
                    android:layout_column="9"
                    android:layout_gravity="bottom"/>
            </TableRow>

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:text="Artikel"
                    android:textColor="@android:color/black"
                    android:layout_width="0dp"
                    android:layout_column="1"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextItem"
                    android:textColor="@android:color/black"
                    android:layout_column="2"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:id="@+id/textViewItemDescr"
                    android:textColor="@android:color/black"
                    android:layout_column="3"
                    android:layout_span="5"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:text="Ordnungsstatus"
                    android:textColor="@android:color/black"
                    android:layout_column="8"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxOrdnungsstatus"
                    android:layout_column="9"
                    android:layout_gravity="bottom"/>       
            </TableRow>

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:layout_column="1"
                    android:textColor="@android:color/black"
                    android:text="Charge"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextCharge"
                    android:textColor="@android:color/black"
                    android:layout_column="2"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Sauberkeitsstatus"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxSauberkeitsstatus"
                    android:layout_column="9"
                    android:layout_gravity="bottom"/>       
            </TableRow>     

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:text="MHD"
                    android:textColor="@android:color/black"
                    android:layout_column="1"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextMHD"
                    android:textColor="@android:color/black"
                    android:layout_column="2"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:text="Prod.-Datum"
                    android:textColor="@android:color/black"
                    android:layout_column="4"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextProdDate"
                    android:textColor="@android:color/black"
                    android:layout_column="5"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Schädlingsstatus"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxSchaedlingsstatus"
                    android:layout_column="9"
                    android:layout_gravity="bottom"/>
            </TableRow> 

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:text="Menge"
                    android:textColor="@android:color/black"
                    android:layout_column="1"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextMenge"
                    android:textColor="@android:color/black"
                    android:layout_column="2"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:textColor="@android:color/black"
                    android:layout_column="3"
                    android:layout_gravity="center_vertical"
                    android:id="@+id/textViewItemUom"/>
                <TextView
                    android:text="Geometrie"
                    android:textColor="@android:color/black"
                    android:layout_column="4"
                    android:layout_gravity="center_vertical"/>
                <Spinner
                    android:id="@+id/spinnerItemGeometry"
                    android:layout_column="5"
                    android:layout_width="150dp"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Warentemp."
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextLhmWarentemp"
                    android:layout_column="9"
                    android:layout_width="50dip"
                    android:layout_gravity="center_vertical"
                    android:textColor="@android:color/black"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:layout_column="10"
                    android:textColor="@android:color/black"
                    android:text="Warentemp.-Status"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxWarentempstatus"
                    android:layout_column="11"
                    android:layout_gravity="bottom"/>
            </TableRow>     

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <TextView
                    android:text="LHM-Nr."
                    android:textColor="@android:color/black"
                    android:layout_column="1"
                    android:layout_gravity="center_vertical"/>
                <EditText
                    android:id="@+id/editTextLHMNr"
                    android:layout_gravity="center_vertical"
                    android:layout_column="2"
                    android:textColor="@android:color/black"
                    android:singleLine="true"
                    android:textSize="14dip" />
                <TextView
                    android:text="LHM Typ"
                    android:textColor="@android:color/black"
                    android:layout_column="4"
                    android:layout_gravity="center_vertical"/>
                <Spinner
                    android:id="@+id/spinnerLhmType"
                    android:layout_column="5"
                    android:layout_width="150dp"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:text="LHM Höhe"
                    android:textColor="@android:color/black"
                    android:layout_column="6"
                    android:layout_gravity="center_vertical"/>
                <Spinner
                    android:id="@+id/spinnerLhmHeight"
                    android:layout_column="7"
                    android:layout_width="wrap_content"
                    android:layout_gravity="center_vertical"/>
                <TextView
                    android:layout_column="8"
                    android:textColor="@android:color/black"
                    android:text="Altersstatus"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxAltersstatus"
                    android:layout_column="9"
                    android:layout_gravity="bottom"/>   
                <TextView
                    android:layout_column="10"
                    android:textColor="@android:color/black"
                    android:text="Palettenstatus"
                    android:layout_gravity="center_vertical"/>
                <CheckBox
                    android:id="@+id/checkBoxPalettenstatus"
                    android:layout_column="11"
                    android:layout_gravity="bottom"/>   
            </TableRow>         

            <TableRow
                android:layout_height="0dp"
                android:layout_weight="1">
                <Button
                    android:id="@+id/btnPostLe"
                    android:layout_column="1"
                    android:text="LHM buchen"/>         
                <Button
                    android:id="@+id/btnWeCancel"
                    android:layout_column="2"
                    android:text="Abbrechen"/>
            </TableRow> 
        </TableLayout>

    </LinearLayout>

</ScrollView>

enter image description here enter image description here

Upvotes: 0

Views: 260

Answers (2)

PeterOne
PeterOne

Reputation: 124

Try to check if the keyboard is open and use VISIBILITY / GONE.

aktivityMainRelativLayout = (RelativeLayout)findViewById(R.id.main);
    aktivityMainRelativLayout.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            int heightDiff = aktivityMainRelativLayout.getRootView().getHeight() - aktivityMainRelativLayout.getHeight();

            if (heightDiff > 100) {
                //keyboard open
                anliefungposLayout.setVisibility(View.GONE);
            } else {
                //keyboard close
                anliefungposLayout.setVisibility(View.VISIBLE);
            }
        }
    });

Upvotes: 0

Cheesebaron
Cheesebaron

Reputation: 24460

Looks like you want to Resize your Activity when the SoftInput is showing.

So first, remove your outer ScrollView as you don't want to scroll everything.

Then on your Activity in the ActivityAttribute add a WindowSoftInputMode specification like:

[Activity(WindowSoftInputMode = SoftInput.AdjustResize | SoftInput.StateHidden)]

Now when the keyboard is showing, it should resize the Activity and your views.

Upvotes: 1

Related Questions