我有一个程序,它使用Android设备作为另一个基于PIC的系统的接口。Android有两种操作模式--一种是提供人机界面风格的显示器,显示连接系统的状态;另一种,它充当一个哑巴终端,允许我对监控系统进行编程和修改。

我正在使用一个片段来处理终端活动。它有一个TextView,显示过去输入的文本和响应的历史,另一个TextView允许我输入命令行。在启动程序和访问终端显示时,触摸文本条目TextView会打开键盘,另外两个TextViews向上移动显示器,为其腾出空间。这就是我想要的。

我可以通过保存FragmentInstanceState,然后使用fragTrans.hide()来访问人机界面显示器。如果我返回到终端片段并开始重新输入文本,那么键盘现在覆盖两个TextViews,它隐藏了文本输入框。


这两种模式的唯一不同之处在于,在重新输入片段时,我使用fragTrans.show()来显示终端模式:当第一次启动时,我使用fragTrans.add()。
终端的第一次使用和随后的访问之间的另一个变化是,我用于访问终端的按钮最初是覆盖的,但稍后出现在键盘之上。
这个问题是由于fragment.show()函数和fragment.add()函数之间的差异造成的,还是缺少了另一个方面?
发布于 2013-12-12 20:12:37
我相信这和你用来保存这些碎片的活动有关。在清单文件中,向活动中添加以下代码,以便在显示软输入时使屏幕进行调整。
如果您正在使用两个活动,请确保它们都具有以下内容:
android:windowSoftInputMode="adjustPan"
<activity
android:name="com.yourapp.MainActivity"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan" >
</activity>https://stackoverflow.com/questions/20553212
复制相似问题