2012-03-12 35 views
1

我有一個ListView顯示類別的項目,低於這個,我有一個LinerLayout writen控制菜單,並且,也是EditText在這個應用程序的頂部Go按鈕。列表視圖得到錯誤的顯示順序

在第一次運行時一切都很好。但是,當我點擊EditText進行輸入時,從鍵盤出現以後,菜單欄被拉起。現在,ListView的訂單已更改。

例如: 在開頭:1次會議2事件3附表4提醒 後來鍵盤節目和一切拉昇:1條附表2提醒3會議4事件。

我也發現這個問題只會發生在沒有足夠空間繼續顯示整個ListView時。

我在網上搜索了很長時間後無法解決這個問題。

這是我的佈局,我的名單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

向我們展示一些代碼,(xml佈局和您的'onCreate()') – 2012-03-12 07:41:52

+0

聽起來像你不要使用列表視圖來滾動,而只是爲了顯示所有的項目(我是對的?)如果是的話,爲什麼你使用listview? – Joe 2012-03-12 08:36:42

+0

由dldnh的回答解決。但我仍然不知道爲什麼。 – panda 2012-03-12 12:44:45

回答

2
在AndroidManifest.xml文件

,在<活動... >定義,包括android:windowSoftInputMode="adjustPan"像這樣:

<activity 
    android:name=".ClassName" 
    android:windowSoftInputMode="adjustPan" > 
    ... 
</activity> 
+0

你介意解釋這個問題究竟是如何解決的?對我來說,它看起來像是一個神奇的解決方案,而不是一個合理的解決方案謝謝! – 2014-03-29 13:27:42

+0

這就是爲什麼這可以工作...活動的主窗口沒有調整大小,爲軟鍵盤騰出空間。相反,窗口的內容會自動平移,以便當前焦點永遠不會被鍵盤遮擋,用戶始終可以看到他們正在鍵入的內容。這通常不如調整大小,因爲用戶可能需要關閉軟鍵盤才能與窗口的遮蔽部分進行交互。 來源:http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft – 2014-09-25 19:24:28

+0

這不適合我 – Steve 2016-05-27 08:17:04