[英]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.