简体   繁体   English

弹出软键盘时如何仅隐藏部分布局

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

My layout is split into 3 sections (see screenshot).我的布局分为 3 个部分(见屏幕截图)。 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.当软键盘出现时,它会部分隐藏第 1 部分并完全隐藏第 2 部分。但是,我需要它仅隐藏第 2 部分并保持 1 和 3 完全可见。 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.我尝试使用ScrollView作为最外面的视图,但是当键盘弹出而不是向上推时,它会导致第 3 部分重叠。 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>

在此处输入图像描述 在此处输入图像描述

Looks like you want to Resize your Activity when the SoftInput is showing.看起来您想在显示 SoftInput 时调整 Activity 的大小。

So first, remove your outer ScrollView as you don't want to scroll everything.因此,首先,删除您的外部 ScrollView,因为您不想滚动所有内容。

Then on your Activity in the ActivityAttribute add a WindowSoftInputMode specification like:然后在Activity中的ActivityAttribute添加一个WindowSoftInputMode规范,如:

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

Now when the keyboard is showing, it should resize the Activity and your views.现在,当键盘显示时,它应该调整 Activity 和您的视图的大小。

Try to check if the keyboard is open and use VISIBILITY / GONE.尝试检查键盘是否打开并使用 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);
            }
        }
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM