Android全屏,EditText推送其他视图

时间:2014-05-28 08:07:06

标签: android android-layout

我正在开发应用并遇到问题。

我有一个类似下图的视图,图像和edittext字段是正确的位置。但是当我点击edittext字段并获得焦点时,它会推动另一个视图。

我有全屏标志,如果我不使用它它完美的工作,图像保持你的位置,不要推高。我需要全屏标志。

是否有人有一些例子或可以帮助我。我使用了'windowSoftInputMode'和所有posibles值。

这里是我的布局代码和示例,它现在是如何工作的以及它是如何工作的。

xml布局源:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="top"
    android:fillViewport="true"
    android:orientation="vertical"
    android:scrollbarStyle="insideOverlay"
    android:scrollbars="vertical|none" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" >

        <!-- layout for images -->
        <RelativeLayout
            android:id="@+id/imageview"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:gravity="top" >

            <ImageView
                android:layout_height="wrap_content"
                android:layout_width="wrap_content"
                android:background="@drawable/image"
                android:contentDescription="TODO"/>

        </RelativeLayout>

        <!-- layout for edit text -->
        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:gravity="bottom" 
            android:layout_alignTop="@id/imageview"
            >

            <EditText
                android:id="@+id/tekstbox"
                android:imeOptions="flagNoExtractUi"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:inputType="text" />

        </RelativeLayout>

    </RelativeLayout>

</RelativeLayout>

以下是我在活动中开始的图像

This is my start position in the view (image on top and edittext below)

当我点击edittext字段时,我希望我的视图做出如下反应:

wanted reaction

但是当edittext gots聚焦时,它会像下面一样推动所有事情:

enter image description here

有人知道如何通过全屏标志来解决这个问题吗?

感谢。

3 个答案:

答案 0 :(得分:1)

在Manifest.xml中使用此行代码。在发生问题的活动中

 <activity

           android:windowSoftInputMode="stateVisible|adjustNothing">  

  </activity>

答案 1 :(得分:1)

在活动代码中的清单文件中添加以下行:

android:windowSoftInputMode="adjustResize"

并在您的布局文件中添加ScrollView,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:fillViewport="true"
android:orientation="vertical"
android:scrollbarStyle="insideOverlay"
android:scrollbars="vertical|none" >

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >

    <!-- layout for images -->
    <RelativeLayout
        android:id="@+id/imageview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:gravity="top" >

        <ImageView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:background="@drawable/image"
            android:contentDescription="TODO"/>

    </RelativeLayout>

    <!-- layout for edit text -->
    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="bottom" 
        android:layout_alignTop="@id/imageview"
        >

        <EditText
            android:id="@+id/tekstbox"
            android:imeOptions="flagNoExtractUi"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:inputType="text" />

    </RelativeLayout>

  </RelativeLayout>

 </ScrollView>

</RelativeLayout>

答案 2 :(得分:0)

在活动代码中的清单文件中添加以下行:

 android:windowSoftInputMode="adjustPan|stateHidden"