SoftKeyboard 覆盖 editText
SoftKeyboard override editText
我有一些元素的滚动视图,其中之一 - 编辑文本,靠近布局底部。
当此 editText 通过单击请求焦点时 - 打开软键盘并覆盖该 editText 字段,因此用户看不到他输入的内容...
知道为什么会发生这种情况以及如何解决它吗?
这是我的代码清单:
<activity
android:name=".acitivity.TransferActivity"
android:label="@string/title_activity_transfer"
android:theme="@style/AppTheme.NoActionBar"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
</activity>
这里是 activity xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_transfer"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container_transfer_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_transfer" />
</LinearLayout>
这里是片段xml:
<ScrollView
android:id="@+id/transfer_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue_500"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
//some code here
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
//some code here
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/et_transfer_p1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:textColor="@color/gray_400"
android:textSize="@dimen/font_main_2" >
</EditText>
</LinearLayout>
</LinearLayout>
</ScrollView>
<EditText
android:id="@+id/et_transfer_p1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:gravity="center_horizontal"
android:inputType="number"
android:textColor="@color/gray_400"
android:textSize="@dimen/font_main_2" />
并将 ScrollView 高度设置为 match_parent
对您的清单文件尝试此操作:
<activity
android:name="com.android.test.ActivityName"
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
试试这个..
android:windowSoftInputMode="adjustPan"
只需转到清单并编写此代码
android:windowSoftInputMode="stateVisible|adjustNothing"
像这样假设你的activitynamecom.something.Activity
<activity android:name="com.something.Activity"
android:windowSoftInputMode="stateVisible|adjustNothing"
></activity>
它会调整,你的textview位置不会改变。
在您的 ScrollView 中添加它可以让您有效地滚动和输入编辑文本:
android:fillViewport="true
我有一些元素的滚动视图,其中之一 - 编辑文本,靠近布局底部。 当此 editText 通过单击请求焦点时 - 打开软键盘并覆盖该 editText 字段,因此用户看不到他输入的内容...
知道为什么会发生这种情况以及如何解决它吗?
这是我的代码清单:
<activity
android:name=".acitivity.TransferActivity"
android:label="@string/title_activity_transfer"
android:theme="@style/AppTheme.NoActionBar"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize">
</activity>
这里是 activity xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar_transfer"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:popupTheme="@style/AppTheme.PopupOverlay" />
<fragment
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/container_transfer_activity"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:layout="@layout/fragment_transfer" />
</LinearLayout>
这里是片段xml:
<ScrollView
android:id="@+id/transfer_scroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue_500"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
//some code here
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
//some code here
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<EditText
android:id="@+id/et_transfer_p1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:inputType="number"
android:textColor="@color/gray_400"
android:textSize="@dimen/font_main_2" >
</EditText>
</LinearLayout>
</LinearLayout>
</ScrollView>
<EditText
android:id="@+id/et_transfer_p1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
android:gravity="center_horizontal"
android:inputType="number"
android:textColor="@color/gray_400"
android:textSize="@dimen/font_main_2" />
并将 ScrollView 高度设置为 match_parent
对您的清单文件尝试此操作:
<activity
android:name="com.android.test.ActivityName"
android:windowSoftInputMode="stateHidden|adjustResize" >
</activity>
试试这个..
android:windowSoftInputMode="adjustPan"
只需转到清单并编写此代码
android:windowSoftInputMode="stateVisible|adjustNothing"
像这样假设你的activitynamecom.something.Activity
<activity android:name="com.something.Activity"
android:windowSoftInputMode="stateVisible|adjustNothing"
></activity>
它会调整,你的textview位置不会改变。
在您的 ScrollView 中添加它可以让您有效地滚动和输入编辑文本:
android:fillViewport="true