【发布时间】:2018-08-28 21:48:21
【问题描述】:
我一直在尝试许多解决方案,以防止软键盘在出现时推动我的布局。但是,所有解决方案都不起作用。
简单地说,我希望布局中的所有内容(按钮、imageViews、背景、textViews、textEdits)在显示软键盘时保持原位。我不在乎它会涵盖什么。
我尝试了以下所有方法并且都产生了相同的输出并且不起作用:
- (无效)我尝试在我的
AndroidManifest.xml中写android:windowSoftInputMode="adjustNothing" - (没用)我尝试在 my
onCreate()中写getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);虽然没用 - 我试着写
android:windowSoftInputMode="adjustResize"在我的AndroidManifest.xml中也没有工作 - (无效)我尝试在我的
AndroidManifest.xml中写android:windowSoftInputMode="stateHidden|adjustPan" - (没用)我也尝试在我的
AndroidManifest.xml中写android:windowSoftInputMode="stateVisible|adjustPan"
以上所有解决方案都生成了以下快照:
实际的布局是这样的(这是我希望它在软键盘处于活动状态时保持的样子):
知道如何防止这种情况发生吗?
这是我的 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="xxxxxxx">
<!-- Include required permissions for Google Mobile Ads to run. -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE"/>
<supports-screens
android:xlargeScreens="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
tools:replace="android:supportsRtl"
android:theme="@style/AppTheme"> <!-- This meta-data tag is required to use Google Play Services. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity
android:name=".MainActivity"
android:configChanges="orientation"
android:screenOrientation="portrait"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity> <!-- Include the AdActivity configChanges and theme. -->
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:windowSoftInputMode="stateVisible|adjustPan"
android:theme="@android:style/Theme.Translucent" />
</application>
</manifest>
MainActivity.xml
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
<!-- view for AdMob Banner Ad -->
<!--Real Ad ads:adUnitId="@string/banner_ad_unit_id" -->
<ImageView
android:id="@+id/background"
android:layout_width="0dp"
android:layout_height="0dp"
android:scaleType="fitXY"
android:visibility="visible"
ads:layout_constraintBottom_toBottomOf="parent"
ads:layout_constraintLeft_toLeftOf="@id/relativeLayout"
ads:layout_constraintRight_toRightOf="@id/relativeLayout"
ads:layout_constraintTop_toTopOf="parent"
ads:layout_constraintVertical_bias="0.0" />
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="320dp"
android:layout_height="50dp"
android:visibility="visible"
ads:adSize="BANNER"
ads:adUnitId="ca-app-pub-5739450654089125/9466012825"
ads:layout_constraintLeft_toLeftOf="parent"
ads:layout_constraintRight_toRightOf="parent"
ads:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/submitScore"
android:layout_width="88dp"
android:layout_height="48dp"
android:text="@string/submit"
ads:layout_constraintBottom_toBottomOf="@id/ourScoreTextInput"
ads:layout_constraintRight_toRightOf="@id/adView" />
<EditText
android:id="@+id/theirScoreTextInput"
android:layout_width="95dp"
android:layout_height="42dp"
android:layout_marginTop="4dp"
android:ems="10"
android:inputType="number"
android:scrollbars="vertical"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textStyle="bold"
android:visibility="visible"
ads:layout_constraintBottom_toBottomOf="@id/ourScoreTextInput"
ads:layout_constraintLeft_toLeftOf="@id/adView"
ads:layout_constraintTop_toBottomOf="@id/theirTextFieldDescription" />
<EditText
android:id="@+id/ourScoreTextInput"
android:layout_width="95dp"
android:layout_height="0dp"
android:layout_marginBottom="389dp"
android:ems="10"
android:inputType="number"
android:scrollbars="vertical"
android:textColor="@android:color/background_light"
android:textStyle="bold"
android:visibility="visible"
ads:layout_constraintBaseline_toBaselineOf="@id/theirScoreTextInput"
ads:layout_constraintBottom_toBottomOf="parent"
ads:layout_constraintLeft_toRightOf="@id/theirScoreTextInput"
ads:layout_constraintRight_toLeftOf="@id/submitScore"
ads:layout_constraintTop_toBottomOf="@id/ourTextFieldDescription" />
<TextView
android:id="@+id/theirTextFieldDescription"
android:layout_width="wrap_content"
android:layout_height="27dp"
android:text="@string/their_score"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="20sp"
ads:layout_constraintBottom_toTopOf="@+id/theirScoreTextInput"
ads:layout_constraintHorizontal_bias="0.472"
ads:layout_constraintLeft_toLeftOf="@+id/theirScoreTextInput"
ads:layout_constraintRight_toRightOf="@id/theirScoreTextInput"
ads:layout_constraintTop_toBottomOf="@+id/adView"
ads:layout_constraintVertical_bias="0.283" />
<TextView
android:id="@+id/ourTextFieldDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/our_score"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="20sp"
ads:layout_constraintBaseline_toBaselineOf="@id/theirTextFieldDescription"
ads:layout_constraintBottom_toBottomOf="@id/ourTextFieldDescription"
ads:layout_constraintBottom_toTopOf="@id/ourScoreTextInput"
ads:layout_constraintLeft_toLeftOf="@id/ourScoreTextInput"
ads:layout_constraintRight_toRightOf="@+id/ourScoreTextInput"
ads:layout_constraintTop_toTopOf="@id/theirTextFieldDescription" />
<TextView
android:id="@+id/theirScoreSheet"
android:layout_width="150dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="8dp"
android:background="#1FFF"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="24sp"
android:textStyle="bold"
ads:layout_constraintBottom_toBottomOf="parent"
ads:layout_constraintLeft_toLeftOf="@id/background"
ads:layout_constraintRight_toLeftOf="@id/frameLayout"
ads:layout_constraintTop_toBottomOf="@+id/theirScoreSheetDescription"
ads:layout_goneMarginLeft="16dp"
ads:layout_goneMarginRight="16dp" />
<TextView
android:id="@+id/ourScoreSheet"
android:layout_width="147dp"
android:layout_height="0dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:background="#1FFF"
android:scrollbars="vertical"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="24sp"
android:textStyle="bold"
ads:layout_constraintBottom_toBottomOf="@+id/theirScoreSheet"
ads:layout_constraintLeft_toRightOf="@id/frameLayout"
ads:layout_constraintRight_toRightOf="@id/background"
ads:layout_constraintTop_toTopOf="@id/theirScoreSheet"
ads:layout_constraintVertical_bias="0.0"
ads:layout_goneMarginLeft="16dp"
ads:layout_goneMarginRight="16dp" />
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="5dp"
android:layout_height="0dp"
ads:layout_constraintBottom_toBottomOf="@+id/background"
ads:layout_constraintEnd_toEndOf="parent"
ads:layout_constraintHorizontal_bias="0.5"
ads:layout_constraintStart_toStartOf="parent"
ads:layout_constraintTop_toTopOf="parent"
ads:layout_constraintVertical_bias="0.0">
</FrameLayout>
<ImageView
android:id="@+id/gear"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@drawable/gear"
android:contentDescription="@string/gear"
android:visibility="visible"
ads:layout_constraintBottom_toBottomOf="parent"
ads:srcCompat="@drawable/gear" />
<TextView
android:id="@+id/theirScoreSheetDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/their_score"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="22sp"
android:textStyle="bold"
ads:layout_constraintLeft_toLeftOf="@id/theirScoreSheet"
ads:layout_constraintRight_toRightOf="@id/theirScoreSheet"
ads:layout_constraintTop_toBottomOf="@id/theirScoreTextInput" />
<TextView
android:id="@+id/ourScoreTotalLarge"
android:layout_width="138dp"
android:layout_height="wrap_content"
android:alpha="0.4"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="75sp"
android:textStyle="bold"
ads:layout_constraintBottom_toBottomOf="@+id/ourScoreSheet"
ads:layout_constraintLeft_toLeftOf="@+id/ourScoreSheet"
ads:layout_constraintRight_toRightOf="@+id/ourScoreSheet"
ads:layout_constraintTop_toTopOf="@+id/ourScoreSheet" />
<TextView
android:id="@+id/theirScoreTotalLarge"
android:layout_width="138dp"
android:layout_height="wrap_content"
android:alpha="0.4"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="75sp"
android:textStyle="bold"
ads:layout_constraintBottom_toBottomOf="@+id/ourScoreTotalLarge"
ads:layout_constraintLeft_toLeftOf="@+id/theirScoreSheet"
ads:layout_constraintRight_toRightOf="@+id/theirScoreSheet"
ads:layout_constraintTop_toTopOf="@id/ourScoreTotalLarge" />
<TextView
android:id="@+id/ourScoreSheetDescription"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/our_score"
android:textAlignment="center"
android:textColor="@android:color/background_light"
android:textSize="22sp"
android:textStyle="bold"
ads:layout_constraintBottom_toBottomOf="@+id/theirScoreSheetDescription"
ads:layout_constraintLeft_toLeftOf="@+id/ourScoreSheet"
ads:layout_constraintRight_toRightOf="@+id/ourScoreSheet"
ads:layout_constraintTop_toTopOf="@+id/theirScoreSheetDescription" />
<Button
android:id="@+id/settingsButton"
android:layout_width="40dp"
android:layout_height="40dp"
android:alpha="0.0"
ads:layout_constraintBottom_toBottomOf="@+id/gear"
ads:layout_constraintLeft_toLeftOf="@+id/gear"
ads:layout_constraintRight_toRightOf="@+id/gear"
ads:layout_constraintTop_toTopOf="@+id/gear" />
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
ads:layout_constraintGuide_end="364dp" />
</android.support.constraint.ConstraintLayout>
【问题讨论】:
-
试试
stateHidden|adjustNothing或adjustResize -
我都试过了,如我上面写的那样,但没有成功
-
显示您的 xml 和清单文件
-
您在滚动视图中使用的背景图片对吗? @Adeeb
-
只有我的 xml 文件中没有滚动视图(textViews、buttons、textEdits 和 imageViewes)
标签: java android layout view keyboard