在Android中按下EditText时(键盘出现后),是否不想隐藏EditText View?

时间:2013-08-27 06:32:45

标签: android-layout keyboard android-tabhost android-softkeyboard

在Android应用程序中,

当我按下EditText时,它看起来如下所示:

enter image description here

我在tabbar上方使用textview并使用代码

 android:windowSoftInputMode="stateHidden|adjustResize|adjustPan"
清单文件中的

在按下EditText时隐藏选项卡。但它也隐藏文本视图和按钮,如下所示:

enter image description here

我不想隐藏textview,我只是想隐藏tabbar。

xml文件

chatroom.xml:

<?xml version="1.0" encoding="utf-8"?>

<TabHost
    android:id="@+id/tabHost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" >

            <include layout="@layout/chat_tab_list" />
        </FrameLayout>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:windowSoftInputMode="adjustPan"
            >
        </TabWidget>
    </LinearLayout>
</TabHost>

chat_tab_list.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    android:id="@+id/chat_list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:visibility="visible" >

    <ListView
        android:id="@+id/listView"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:background="@color/white" >
    </ListView>

    <LinearLayout
        android:id="@+id/text_entry"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom"
        android:orientation="horizontal"
        android:visibility="visible" >

        <EditText
            android:id="@+id/txt_inputText"
            android:layout_width="125dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.8"
            android:hint="@string/enter_text"
            android:inputType="text"                
            android:windowSoftInputMode="adjustResize" />

        <Button
            android:id="@+id/btn_Send"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.2"
            android:text="@string/send" />
    </LinearLayout>
</LinearLayout>

请指导我。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:2)

This question表示您应该只能在标签栏上设置android:windowSoftInputMode="adjustPan",而不能在文本输入上设置android:windowSoftInputMode="adjustResize"。这样,文本输入正常,向上滚动,但标签栏保持不变。文本输入应该有{{1}},以便滚动。有关不同模式的详细信息,请参阅this page

根据您的编辑,它看​​起来像是因为您的编辑文本位于标签窗口小部件中。您应该使用adjustResize的软输入模式将Edit Text外部移动到root linearLayout。

答案 1 :(得分:1)

试试这个

将这个添加到您的AndroidManifest,只是在有标签的活动中。

<activity
    android:name="YourActivity"
    android:windowSoftInputMode="adjustPan" >
</activity>

答案 2 :(得分:0)

 <Activity>
   android:windowSoftInputMode="adjustPan"
 </Activity>