[英]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.