我的滚动视图包含一个线性布局,其中还包含一些编辑文本字段。现在,当我点击底部的编辑文本字段时,会出现软键盘,但我的问题是它涵盖了编辑文本字段。这是我在android清单文件中声明的活动:
<activity
android:name="me.example.scrollview.LoginActivity"
android:label="@string/title_activity_login"
android:theme="@android:style/Theme.Black.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustResize|adjustPan" >
</activity>
这是我此活动的layout.xml文件。
<RelativeLayout 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"
android:background="@android:color/darker_gray"
tools:context=".LoginActivity" >
<ScrollView
android:id="@+id/login_sv_login_container"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:isScrollContainer="true"
android:background="@android:color/transparent" >
<LinearLayout
android:id="@+id/login_ll_container"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_marginTop="230dp"
android:layout_gravity="center_horizontal"
android:background="@android:color/transparent"
android:orientation="vertical" >
<EditText
android:id="@+id/txt_username"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_gravity="center_horizontal"
android:background="@drawable/rounded_edittext"
android:ems="10"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true" >
<requestFocus />
</EditText>
<EditText
android:id="@+id/txt_phone"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:background="@drawable/rounded_edittext"
android:ems="10"
android:inputType="phone"
android:maxLines="1"
android:singleLine="true" />
<EditText
android:id="@+id/txt_password"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:background="@drawable/rounded_edittext"
android:ems="10"
android:inputType="textPassword"
android:maxLines="1"
android:singleLine="true" />
<Button
android:id="@+id/btn_login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:layout_marginTop="10dp"
android:background="@drawable/ic_login"
android:text="" />
</LinearLayout>
</ScrollView>
现在请帮助我,因为我对android编程很新。我无法修复此问题,无法在不调整主窗口大小的情况下找到滚动滚动视图的方法。我只希望滚动视图在软键盘出现时进行滚动。提前提示。
答案 0 :(得分:0)
您可以使用YOURSCROLLVIEW.scrollTo(int x,int y)或YOURSCROLLVIEW.smoothScrollTo(int x,int y)将滚动视图移动到适当的坐标,以便显示编辑文本框和键盘。
可以找到有关这些函数和其他scrollview函数的更多信息on the android developer reference page.
答案 1 :(得分:0)
您可以尝试:
ScrollView scroll = (ScrollView)findViewById(R.id.scrollview);
scroll.scrollTo(0, sv.getBottom());
或
scroll.scrollTo(5, 10);
答案 2 :(得分:0)
之前指出的解决方案都可行。但是如果edittext位于ListView的底部,它仍然会被屏幕键盘覆盖,那么可能仍然存在问题。不确定滚动视图是否可以滚动到没有更多内容的位置。
我所看到的是你可能会在清单中使用两个矛盾的标志:
android:windowSoftInputMode="stateHidden|adjustResize|adjustPan" > </activity>
adjustResize和adjustPan不能合并。仅使用adjustResize尝试它的外观。这应该避免键盘覆盖您的任何视图。