【问题标题】:Inconsistent behaviour of a frgament片段的不一致行为
【发布时间】:2013-12-12 20:07:55
【问题描述】:

我有一个程序,它使用 Android 设备作为另一个基于 PIC 系统的接口。 Android 有两种操作模式——一种是 HMI 风格的显示屏,显示连接系统的状态:另一种是哑终端,允许我对受监控的系统进行编程和更改。

我正在使用一个片段来处理终端活动。这有一个 TextView 显示输入文本和响应的过去历史记录,另一个 TextView 允许我输入命令行。在第一次启动程序并访问终端显示屏时,触摸文本条目 TextView 会调出键盘,而其他两个 TextView 会向上移动显示屏以腾出空间。这就是我要的。

我可以通过保存 FragmentInstanceState 然后使用 fragTrans.hide() 来访问 HMI 显示。如果我随后返回终端片段并开始重新输入文本,则键盘现在会覆盖两个 TextView,这会隐藏文本输入框。

两种模式的唯一区别是,在重新进入片段时,我使用 fragTrans.show() 来显示终端模式:第一次启动时,我使用 fragTrans.add()。

第一次使用终端和后续访问之间的另一个变化是我用来访问终端的按钮最初是重叠的,但后来出现在键盘上方。

这个问题是由于 fragment.show() 和 fragment.add() 函数之间的差异,还是我缺少另一个方面?

【问题讨论】:

    标签: android android-layout android-fragments android-keypad


    【解决方案1】:

    我认为这与您用来保存这些片段的活动有关。在您的清单文件中,将以下代码添加到您的活动中,以便在显示软输入时调整屏幕。

    如果您使用两个活动,请确保它们都具有以下内容:

    android:windowSoftInputMode="adjustPan"

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多