我在后台使用全屏ImageView进行全屏活动。我使用gravity:center
将EditText放在屏幕中间。当键盘打开时,我想让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"/>
答案 0 :(得分:0)
在EditText
xml,
android:imeOptions="flagNoExtractUi"
我不确定这种方法是否符合您的需求,希望您能提供帮助:)
答案 1 :(得分:-1)
打开你的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>