2013-12-12 72 views
0

我有一個程序,它使用Android設備作爲另一個基於PIC的系統的接口。 Android有兩種操作模式 - 一種是HMI風格的顯示屏,顯示所連接系統的狀態:另一種是作爲啞終端,允許我編程和修改監控系統。 empty terminal screen一個矛盾的行爲不一致

我正在使用一個片段來處理終端活動。這有一個TextView顯示輸入的文本和響應的過去歷史記錄,另一個TextView允許我輸入命令行。首次啓動程序並訪問終端顯示屏時,觸摸文本條目TextView會彈出鍵盤,其他兩個TextView會在顯示屏上向上移動以騰出空間。這就是我要的。 terminal screen with keyboard - as required

我可以通過保存FragmentInstanceState然後使用fragTrans.hide()來訪問HMI顯示器。如果我然後返回到終端片段並開始重新輸入文本,則鍵盤現在覆蓋兩個隱藏文本輸入框的TextView。 enter image description here

enter image description here 在兩種模式的唯一區別是,在重新進入片段我使用fragTrans.show()來在終端顯示模式:當第一啓動,我使用fragTrans.add()。

第一次使用終端和後續訪問之間的另一個變化是,我用來訪問終端的按鈕最初是重疊的,但稍後出現在鍵盤上方。

這是由於fragment.show()和fragment.add()函數之間的差異導致的問題,還是我缺少另一個方面?

回答

1

我相信它與你用來保存這些片斷的活動有關。在您的清單文件中,將以下代碼添加到您的活動中,以便在顯示軟輸入時調整屏幕。

如果你使用兩個活動,確保他們都具備以下條件:

android:windowSoftInputMode="adjustPan"

<activity 
    android:name="com.yourapp.MainActivity" 
    android:label="@string/app_name" 
    android:windowSoftInputMode="adjustPan" > 
</activity> 
+0

這似乎做的伎倆 - 謝謝! – user1815293

+0

嗚!很高興它工作的隊友:) –