程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> listview+editext-Android ListView下方放一個EditText,軟鍵盤彈出問題。

listview+editext-Android ListView下方放一個EditText,軟鍵盤彈出問題。

編輯:編程解疑
Android ListView下方放一個EditText,軟鍵盤彈出問題。

布局:
父布局是一個RelativeLayout,最上面是一個頂部標題,中間是一個ListView,
最下面是一個包含EditText的LinearLayout。
大概寫法就是
標題android:layout_alignParentTop="true"

包含EditText的LinearLayout android:layout_alignParentBottom="true"

中間的ListView

android:layout_below="標題"

android:layout_above="底部LinearLayout"

這是未點擊EditText,軟鍵盤未彈出時的位置
軟鍵盤未彈出

問題:
android:windowSoftInputMode="stateHidden|adjustResize"
android:windowSoftInputMode="stateHidden|adjustPan"

如果將設置為adjustPan,點擊EditText軟鍵盤彈出,會以當前EditText的位置為七點

彈出軟鍵盤,軟鍵盤的上方會平齊EditText的底線,但是因為EditText是包含在

LinearLayout裡面,所以會覆蓋EditText下方屬於LinearLayout的一部分布局。

這是屬性設為adjustPan時,點擊EditText彈出軟鍵盤的布局,沒有跳轉到ListView的

底部,直接在原始位置彈出軟鍵盤,頂部知道EditText的光標為止,覆蓋了LinearLayout的部分布局
adjustPan

如果將設置為adjustResize,點擊EditText軟鍵盤彈出,會定位到ListView的最後一個Item,然後向上撐起布局,沒有覆蓋布局。

這是屬性設為adjustResize時的效果,會跳到ListView的最後一個Item,然後從這裡將上方所有布局頂起來,但沒有覆蓋
adjustResize

不知道大家有沒有好的建議和經驗來解決這個問題,求教。

最佳回答:


找到問題原因了,是因為我的ListView設置了android:transcriptMode="alwaysScroll"屬性,去掉就好了。
android:windowSoftInputMode設置為"stateHidden|adjustUnspecified"其實在我這裡adjustUnspecified應該等價於ReSize吧
沒做實驗驗證。恩,總之,謝謝大家了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved