我有ListView
来显示类别项目,在此下方,我有一个在LinerLayout中写入的控制菜单,以及此应用程序顶部的EditText
和go按钮。
第一次运行时一切都很好。但是,当我单击EditText
进行输入时,菜单栏会在键盘出现后被拉起。现在,ListView
的顺序已更改。
例如: 开始时:1会议2活动3时间表4提醒 后来的键盘显示和一切都拉了:1附表2提醒3会议4事件。
我还发现只有在没有足够的空间来展示整个ListView
时才会出现此问题。
我在网上搜索了很长时间后无法解决这个问题。
这是我的布局和我的List Apdater
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout ...>
<ListView
android:id="@+id/items"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/widget53"/>
<LinearLayout
android:id="@+id/widget39"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" >
<ImageButton ../>
<ImageButton ../>
<ImageButton ../>
</LinearLayout>
<LinearLayout
android:id="@+id/widget53"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<Button ../>
<EditText .. />
</LinearLayout>
</RelativeLayout>
//Write item on the screen
lv = (ListView)findViewById(R.id.items);
lv.setAdapter(indexadapter.getAdapter());
lv.setTextFilterEnabled(true);
lv.setOnItemClickListener(ItemClick);
//My list Adapter generate rows base on mData from database
CategoryHolder CategoryHolder = null;
if (convertView == null) {
//getting view format
CategoryHolder = new CategoryHolder();
convertView = mInflater.inflate(R.layout.categoryshow, null);
CategoryHolder.category=(TextView)convertView.findViewById(R.id.indexcategory);
//setting tag for reuse;
convertView.setTag(CategoryHolder);
//setting text for each item;
CategoryHolder.category.setText((String)mData.get(position).get("CATEGORY"));
}else{
CategoryHolder = (CategoryHolder)convertView.getTag();
}
答案 0 :(得分:2)
在您的AndroidManifest.xml文件中,在&lt; activity ...&gt;中定义,包括android:windowSoftInputMode="adjustPan"
,如此:
<activity
android:name=".ClassName"
android:windowSoftInputMode="adjustPan" >
...
</activity>
答案 1 :(得分:0)
在listadapter中使用getView()方法的convertView时,需要再次为每个视图设置文本。要全面了解列表视图的工作方式以及视图的回收方式,您应该在google I / O 2010中观看这些视频http://www.google.com/events/io/2010/sessions/world-of-listview-android.html