Android 如何在弹出软键盘时仅隐藏布局的一部分

Android 如何在弹出软键盘时仅隐藏布局的一部分,android,xamarin,layout,xamarin.android,Android,Xamarin,Layout,Xamarin.android,我的布局分为3个部分(参见屏幕截图)。当软键盘出现时,它部分隐藏部分1,完全隐藏部分2。但是,我需要它只隐藏第2节,并保持第1节和第3节完全可见。我尝试使用ScrollView作为最外层的视图,但当键盘弹出时,它会导致第3部分重叠,而不是向上推。你能就如何实现这一目标提出一些解决方案吗 布局代码: <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.co

我的布局分为3个部分(参见屏幕截图)。当软键盘出现时,它部分隐藏部分1,完全隐藏部分2。但是,我需要它只隐藏第2节,并保持第1节和第3节完全可见。我尝试使用
ScrollView
作为最外层的视图,但当键盘弹出时,它会导致第3部分重叠,而不是向上推。你能就如何实现这一目标提出一些解决方案吗

布局代码:

<?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>


显示SoftInput时,您似乎希望调整活动的大小

因此,首先,删除外部滚动视图,因为您不想滚动所有内容

然后在
ActivityAttribute
中的
Activity
上添加
WindowSoftInputMode
规范,如:

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

现在,当键盘显示时,它应该调整活动和视图的大小。

尝试检查键盘是否打开,并使用可见性/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);
            }
        }
    });

您可以使用3种不同的布局名称来代替表格布局使用约束布局,并通过编程更改所需布局的可见性。类似于:editText.setOnTouchListener(新的OnTouchListener(){@Override public boolean onTouch(视图v,运动事件){layout_2.setVisibility(View.GONE);}});这会导致第1部分缩小到几乎看不见的程度。是的,然后你写布局,使它可以很好地缩放。你能更具体一点吗?我应该在布局中设置哪些属性?很抱歉,这将是一个简单的答案。您应该考虑将布局转换为ConstraintLayout,并对子布局使用基于百分比的高度。