我用LinearLayout
创建了android屏幕,其中我使用layout_sum属性进行屏幕划分。在ListView中创建一个EditText
进行搜索,在打开软键盘之前似乎没问题。
但是当我打开软键盘时EditText
会像图片中的节目一样隐藏。
这是我的xml代码。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="3"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="0.9"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="4" >
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="T100"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="A100"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="P100"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="S100"
android:textSize="12sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="4" >
<TextView
android:id="@+id/txtSearch"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_below="@id/lvdetail"
android:text="Search :"
android:layout_weight="1"
android:gravity="center"/>
<EditText
android:id="@+id/eatmcode"
android:layout_width="0dp"
android:layout_height="match_parent"
android:ems="2"
android:focusableInTouchMode="true"
android:hint="Enter ATM"
android:imeOptions="actionSearch"
android:inputType="text"
android:textSize="16dp"
android:layout_weight="2"/>
</LinearLayout>
<TextView
android:id="@+id/txtLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txtSearch"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:paddingTop="10dp"
android:text="List of Vehicle"
android:textSize="14dp"
android:textStyle="bold" />
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="2.1"
android:transcriptMode="normal" >
</ListView>
</LinearLayout>
键盘打开前的屏幕
键盘打开后
任何帮助都会得到满足。谢谢。
答案 0 :(得分:4)
不要在ListView上方的LinearLayout上使用权重,即使用固定高度,并将ListView的权重设置为1。
修改强>
示例代码:
<LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
...
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:transcriptMode="normal" >
</ListView>
</LinearLayout>
答案 1 :(得分:0)
在清单文件的当前活动代码中添加android:windowSoftInputMode="adjustPan"
。
答案 2 :(得分:0)
您必须更改清单文件
在您的活动代码中添加如下
<activity
android:name="com.companyname.applicationname"
android:windowSoftInputMode="adjustPan">
有关详细信息,请参阅此link
答案 3 :(得分:0)
在listView和LinearLayout中删除权重,使用像这样的wrap_content
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="3"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="4" >
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="T100"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="A100"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="P100"
android:textSize="12sp"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_margin="3dp"
android:layout_weight="1"
android:gravity="center"
android:text="S100"
android:textSize="12sp"
android:textStyle="bold" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:weightSum="4" >
<TextView
android:id="@+id/txtSearch"
android:layout_width="0dp"
android:layout_height="match_parent"
android:text="Search :"
android:layout_weight="1"
android:gravity="center"/>
<EditText
android:id="@+id/eatmcode"
android:layout_width="0dp"
android:layout_height="match_parent"
android:ems="2"
android:focusableInTouchMode="true"
android:hint="Enter ATM"
android:imeOptions="actionSearch"
android:inputType="text"
android:textSize="16dp"
android:layout_weight="2"/>
</LinearLayout>
<!-- <TextView
android:id="@+id/txtLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/txtSearch"
android:layout_marginBottom="10dp"
android:gravity="center_horizontal"
android:paddingTop="10dp"
android:text="List of Vehicle"
android:textSize="14dp"
android:textStyle="bold" /> -->
</LinearLayout>
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:transcriptMode="normal" >
</ListView>
</LinearLayout>