我有一个看起来像我想要的布局,直到我点击一个可编辑的字段,然后调出软键盘并通过挤压所有内容并隐藏一些字段来破坏我的布局。我试过添加android:windowSoftInputMode="adjustNothing"
,
android:windowSoftInputMode="adjustPan"
,将内容放在<ScrollView>
内,将android:isScrollableContainer="false"
添加到许多不同的容器中,以及论坛中的其他方法,但没有任何效果。在显示键盘时是否有其他方法可以保持布局固定?
android:fillViewport="true"
。顶部线性布局不再压扁,但底部的按钮仍然是键盘。
我的布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="20dp">
<!-- Linear Layout that holds all Equipment information (List and Details) -->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@drawable/linear_layout_border"
android:orientation="horizontal">
<!-- Linear Layout for Equipment List -->
<LinearLayout
android:id="@+id/equipment_list"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:background="@android:color/darker_gray"
android:orientation="horizontal"
android:layout_marginEnd="0dp"
android:layout_marginRight="0dp">
<ListView
android:id="@+id/lvequipments"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@android:color/transparent"
android:dividerHeight="1dp"
android:listSelector="@drawable/wash_count_list_item_states"/>
</LinearLayout>
<!-- End Linear Layout for Equipment List -->
<!-- Linear Layout for Equipment List Details - Hidden Until a primary equipment is selected-->
<LinearLayout
android:id="@+id/equipment_list_details"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="0dp"
android:layout_weight="1"
android:background="@android:color/background_light"
android:padding="15dp"
android:layout_marginStart="0dp"
android:layout_marginLeft="0dp"
android:baselineAligned="false"
android:visibility="invisible">
<!-- Linear Layouts for Unavailable fields -->
<LinearLayout
android:id="@+id/unavailable_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="@string/work_order_wash_count_unavailable"
android:textSize="20sp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<CheckBox
android:id="@+id/unavailable_count_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:focusable="false" />
</LinearLayout>
<!-- End Linear Layout for Unavailable fields -->
<!-- Hidden EditText for unavailable reason -->
<EditText
android:id="@+id/unavailable_count_reason"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/work_order_wash_count_reason_unavailable"
android:visibility="gone"/>
<!-- Linear Layout for PLC replaced or reset -->
<LinearLayout
android:id="@+id/plc_replaced"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:text="@string/work_order_wash_count_plc_replaced"
android:textSize="20sp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<CheckBox
android:id="@+id/plc_replaced_checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:focusable="false" />
</LinearLayout>
<!-- End Linear Layout for PLC replaced or reset -->
<!-- Linear Layout for Single Pass -->
<LinearLayout
android:id="@+id/single_pass_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="start|bottom"
android:text="@string/work_order_wash_count_single_pass"
android:textSize="20sp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<EditText
android:id="@+id/single_pass_count"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLines="1" />
</LinearLayout>
<!-- End Linear Layout for single pass -->
<!-- Linear Layout for Double pass -->
<LinearLayout
android:id="@+id/double_pass_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom"
android:text="@string/work_order_wash_count_double_pass"
android:textSize="20sp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<EditText
android:id="@+id/double_pass_count"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:imeOptions="actionNext"
android:inputType="number"
android:maxLines="1" />
</LinearLayout>
<!-- End Linear Layout for Double pass -->
<!-- Linear Layout for Total pass -->
<LinearLayout
android:id="@+id/total_pass_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left|bottom"
android:text="@string/work_order_wash_count_total_pass"
android:textSize="20sp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="1" />
<EditText
android:id="@+id/total_pass_count"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:inputType="number"
android:maxLines="1" />
</LinearLayout>
<!-- End Linear Layout for Total pass -->
<Button
android:id="@+id/wash_count_save_button"
style="@style/body_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/work_order_wash_count_save_button_text"
android:layout_marginTop="20dp"
android:layout_gravity="bottom"/>
</LinearLayout>
<!-- End Linear Layout for Equipment List Details -->
</LinearLayout>
<!-- End Linear Layout for Equipment Section (List and Details) -->
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<Button
android:id="@+id/close_wash_counts"
style="@style/body_button"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_alignParentBottom="true"
android:text="@string/close" />
</LinearLayout>
</LinearLayout>
答案 0 :(得分:0)
使用此android:windowSoftInputMode="adjustResize"