Android Tabhost键盘重叠输入

时间:2012-11-26 09:31:17

标签: android keyboard android-tabhost

我有tabhost布局,我加载了我的表单活动(滚动条中有10个输入)。当我开始在最底部的输入上打字时,显示的键盘和聚焦输入没有显示(键盘重叠输入而不是正常滚动),我无法看到我的输入是什么。当我试图在tabhost外部运行表单活动时,一切正常,我可以键入并始终查看输入。我的最低API级别为10,最大值为17。

非常感谢任何帮助或指导。

TabHost布局:

<?xml version="1.0" encoding="UTF-8"?>
<TabHost 
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

   <RelativeLayout
       android:id="@+id/layTab"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:layout_alignParentBottom="true"
       android:layout_centerVertical="true"
       android:gravity="center"
       android:background="#00A99D"
       android:paddingLeft="0dip"
       android:paddingRight="0dip" >

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:gravity="center|bottom"                
            android:padding="0dip" />

    </RelativeLayout>
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentTop="true"
        android:layout_above="@id/layTab"/>
</RelativeLayout>

表单布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 android:orientation="vertical">

 <ScrollView 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#eee"
    android:padding="0dip"
    android:layout_alignParentBottom="true">   
<LinearLayout
    android:id="@+id/body"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_below="@id/header"
    android:orientation="vertical" >

<EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:hint="1"
            android:ems="10" />

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:hint="2"
            android:ems="10" />             

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:hint="3"
            android:ems="10" />    

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:hint="4"
            android:ems="10" />    

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
             android:hint="5"
            android:ems="10" />    

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="6"
            android:ems="10" />    

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="7"
            android:ems="10" />    

         <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="8"
            android:ems="10" />    

            <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:imeOptions="flagNoExtractUi"
            android:hint="9"
            android:ems="10"/>



               <EditText
            android:id="@+id/editText6"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="10"
            android:ems="10" />    

    </LinearLayout>

</ScrollView>

 </LinearLayout>

1 个答案:

答案 0 :(得分:1)

当键盘弹出时,它有“两种视觉模式”。 FullScreen,表示键盘呈现的窗口完全覆盖您的应用程序或不是全屏。

在第二种情况下,调整活动显示的窗口的大小。通过调整大小,我假设TabHost可以扩展,但子布局(在您的表单的情况下)不会像它们是独立布局一样缩放。

Android文档声明使用EditText的应用程序应该知道:

  • 在可编辑的文本视图中正确设置inputType,以便 输入法将有足够的上下文来帮助用户输入 文字进入他们。
  • 在输入时处理丢失的屏幕空间 方法显示。理想情况下,应用程序应处理其窗口 被调整大小,但它可以依赖于系统执行 如果需要,可以平移窗口。你应该设置 windowSoftInputMode属性对您的活动或相应的 您创建的窗口上的值,以帮助系统确定是否 平移或调整大小(它会尝试自动确定,但可能 弄错了。)
  • 您还可以控制首选的软输入状态 (打开,关闭等)使用相同的窗口 windowSoftInputMode属性。