簡體   English   中英

使用打開的鍵盤無法看到EditText

[英]EditText Is Not Visible With Open Keyboard

我在后台使用全屏ImageView進行全屏活動。 我使用gravity:center將一個EditText放在屏幕gravity:center 當鍵盤打開時,我想讓EditText向上移動,如下圖所示,這樣整個EditText始終可見。 我曾嘗試使用android:windowSoftInputMode="stateVisible|adjustResize"但問題是我的背景圖像也調整了大小,這是不可取的。 此外,由於重力設置為中心,因此EditText與鍵盤之間存在間隙,因此它仍處於中心位置。 我嘗試過使用scrollView但是我不知道如何獲得鍵盤結束的位置,以便我可以將EditText移動到該位置。 我也嘗試過adjustPan但是這沒有任何效果,因為EditText的高度為200dp ,重力設置為居中,所以用戶總是在仍然可見的EditText中間開始輸入。

XML

<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<FrameLayout
    android:id="@+id/camera_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</FrameLayout>
<ImageView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="gone"
    android:id="@+id/picturedisplay"/>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_gravity="center"
        android:layout_height="200dp"
        android:weightSum="100"
        android:visibility="gone"
        android:id="@+id/pic_layout"
        android:orientation="vertical"
        android:background="#9945D199"
        >
        <EditText
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:hint="Enter text here..."
            android:textColor="#FFFFFF"
            android:maxLength="250"
            android:gravity="center"
            android:imeOptions="flagNoExtractUi"
            android:id="@+id/pic_textbox"
            android:layout_weight="90"/>
        <TextView
            android:layout_width="40dp"
            android:layout_height="0px"
            android:text="200"
            android:textColor="#FFFFFF"
            android:textStyle="bold"
            android:gravity="center_horizontal"
            android:layout_weight="10"
            android:id="@+id/char_rem_view"
            android:layout_gravity="end"/>
    </LinearLayout>

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imgClose"
    android:layout_gravity="right|bottom"
    android:text="Flip Cam"
    android:padding="20dp"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/snap"
    android:text="Capture"
    android:layout_gravity="center|bottom"
    android:padding="20dp"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Flash"
    android:visibility="visible"
    android:id="@+id/imgOpen"
    android:layout_gravity="left|bottom"
    android:padding="20dp"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/addText"
    android:layout_gravity="right|bottom"
    android:text="Add Text"
    android:visibility="gone"
    android:padding="20dp"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/addPic"
    android:text="Add Pic"
    android:visibility="gone"
    android:layout_gravity="center|bottom"
    android:padding="20dp"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Delete"
    android:id="@+id/delete"
    android:visibility="gone"
    android:layout_gravity="left|bottom"
    android:padding="20dp"/>
<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Save"
    android:id="@+id/save_photo"
    android:visibility="gone"
    android:layout_gravity="right|top"
    android:padding="20dp"/>

在此輸入圖像描述

EditText xml中添加它,

android:imeOptions="flagNoExtractUi"

我不確定這種方法不適合你的需求,希望你能幫忙:)

打開你的menifest.xml找到你的活動並添加這一行

<activity android:windowSoftInputMode="adjustResize" />

要么

<activity android:windowSoftInputMode="adjustPan" />

您的活動代碼應如下所示

<activity
    android:name="com.my.MainActivity" //Change this to your.package.ActivityName
    android:screenOrientation="portrait"
    android:label="@string/title_activity_main"
    android:windowSoftInputMode="adjustPan" >
</activity>

要么

<activity
    android:name="com.my.MainActivity"  //Change this to your.package.ActivityName
    android:screenOrientation="portrait"
    android:label="@string/title_activity_main"
    android:windowSoftInputMode="adjustResize" >
</activity>

更新1

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">

<FrameLayout
    android:id="@+id/camera_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</FrameLayout>

<ImageView
    android:id="@+id/picturedisplay"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="gone" />

<LinearLayout
    android:id="@+id/pic_layout"
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:layout_gravity="center"
    android:background="#9945D199"
    android:gravity="center"
    android:orientation="vertical"
    android:visibility="visible">

    <EditText
        android:id="@+id/pic_textbox"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="bottom|center"
        android:hint="Enter text here..."
        android:maxLength="250"
        android:maxLines="6"
        android:textColor="#FFFFFF" />

    <TextView
        android:id="@+id/char_rem_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="end"
        android:gravity="center_horizontal"
        android:padding="5dp"
        android:text="200"
        android:textColor="#FFFFFF"
        android:textStyle="bold" />
</LinearLayout>

<Button
    android:id="@+id/imgClose"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|bottom"
    android:padding="20dp"
    android:text="Flip Cam" />

<Button
    android:id="@+id/snap"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center|bottom"
    android:padding="20dp"
    android:text="Capture" />

<Button
    android:id="@+id/imgOpen"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left|bottom"
    android:padding="20dp"
    android:text="Flash"
    android:visibility="visible" />

<Button
    android:id="@+id/addText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|bottom"
    android:padding="20dp"
    android:text="Add Text"
    android:visibility="gone" />

<Button
    android:id="@+id/addPic"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center|bottom"
    android:padding="20dp"
    android:text="Add Pic"
    android:visibility="gone" />

<Button
    android:id="@+id/delete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="left|bottom"
    android:padding="20dp"
    android:text="Delete"
    android:visibility="gone" />

<Button
    android:id="@+id/save_photo"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right|top"
    android:padding="20dp"
    android:text="Save"
    android:visibility="gone" />

</FrameLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM