我正在使用约束布局进行登录屏幕,因为我喜欢指南的响应性声音,但是当用户尝试使用编辑文本字段并弹出键盘时,我遇到的问题就出现了。
首先,我已经完成了清单中不同的“调整”方法。
在过去使用RelativeLayout时,我在滚动视图中嵌套了布局,使其与AdjustPan具有相同的效果,只是更顺畅。
然而,如果我对约束布局做同样的事情,指南会将我的屏幕尺寸拉伸到一个非常疯狂的大小,使得很多元素出现在屏幕外。
编辑:不确定这是否意味着什么,但如果我有没有父项的约束并将高度设置为wrap_context它会延伸并产生相同的效果,就像它嵌套在scrollview中一样。
以下是受影响布局的XML。
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img_background"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_centerInParent="true"
android:scaleType="centerCrop"
android:src="@drawable/background"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" />
<ImageView
android:id="@+id/top_overlay"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:adjustViewBounds="true"
android:background="@drawable/overlay"
android:scaleType="fitCenter"
app:layout_constraintBottom_toTopOf="@+id/top_guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/lblWelcome"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="8dp"
android:layout_marginEnd="8dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:textColor="#ffffff"
android:gravity="center"
android:text="Welcome"
android:textSize="30sp"
app:layout_constraintBottom_toTopOf="@+id/top_guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<android.support.constraint.Guideline
android:id="@+id/right_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.8" />
<android.support.constraint.Guideline
android:id="@+id/left_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="32dp"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.2" />
<android.support.constraint.Guideline
android:id="@+id/top_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.15" />
<android.support.constraint.Guideline
android:id="@+id/bottom_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.9" />
<ImageView
android:id="@+id/ic_server"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/top_overlay"
android:layout_marginEnd="8dp"
android:layout_marginStart="32dp"
android:layout_toStartOf="@id/input_ip"
android:src="@drawable/ic_server"
app:layout_constraintEnd_toStartOf="@+id/input_ip"
app:layout_constraintHorizontal_bias="0.97"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/input_guideline" />
<EditText
android:id="@+id/input_ip"
android:layout_width="0dp"
android:layout_height="45dp"
android:layout_below="@+id/top_overlay"
android:layout_centerInParent="true"
android:digits="0123456789."
android:hint="@string/input_ip"
android:inputType="number"
android:textColor="#ffffff"
android:singleLine="true"
app:layout_constraintEnd_toStartOf="@+id/right_guideline"
app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
app:layout_constraintTop_toBottomOf="@+id/input_guideline" />
<ImageView
android:id="@+id/ic_user"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/top_overlay"
android:layout_marginEnd="8dp"
android:layout_marginStart="32dp"
android:layout_marginTop="22dp"
android:layout_toStartOf="@id/input_username"
android:src="@drawable/ic_user"
app:layout_constraintEnd_toStartOf="@+id/input_ip"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ic_server" />
<EditText
android:id="@+id/input_username"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/input_ip"
android:layout_marginTop="24dp"
android:hint="@string/input_username"
android:textColor="#ffffff"
android:singleLine="true"
app:layout_constraintEnd_toStartOf="@+id/right_guideline"
app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
app:layout_constraintTop_toBottomOf="@+id/input_ip" />
<ImageView
android:id="@+id/ic_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/top_overlay"
android:layout_marginEnd="8dp"
android:layout_marginStart="32dp"
android:layout_marginTop="20dp"
android:layout_toStartOf="@id/input_username"
android:src="@drawable/ic_pword"
app:layout_constraintEnd_toStartOf="@+id/input_ip"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/ic_user" />
<EditText
android:id="@+id/input_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_below="@+id/input_ip"
android:layout_marginTop="24dp"
android:hint="@string/input_password"
android:inputType="textPassword"
android:singleLine="true"
android:textColor="#ffffff"
app:layout_constraintEnd_toStartOf="@+id/right_guideline"
app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
app:layout_constraintTop_toBottomOf="@+id/input_username" />
<android.support.v7.widget.AppCompatButton
android:id="@+id/btn_Connect"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
android:background="@color/material_light_red"
android:elevation="2dp"
android:padding="12dp"
android:text="Sign In"
android:textColor="#ffffff"
app:layout_constraintEnd_toStartOf="@+id/right_guideline"
app:layout_constraintLeft_toLeftOf="@+id/left_guideline"
app:layout_constraintTop_toBottomOf="@+id/input_password" />
<ImageView
android:id="@+id/bottom_overlay"
android:layout_width="0dp"
android:layout_height="60dp"
android:background="@drawable/overlay"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bottom_guideline" />
<ImageView
android:id="@+id/bottom_logo"
android:layout_width="329dp"
android:layout_height="64dp"
android:background="@drawable/logo"
android:scaleType="fitCenter"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/logo_guideline"
tools:layout_editor_absoluteY="558dp" />
<android.support.constraint.Guideline
android:id="@+id/input_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.25" />
<android.support.constraint.Guideline
android:id="@+id/logo_guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.85" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
答案 0 :(得分:0)
尝试使用ScrollView
&gt; LinearLayout
作为父级布局
android:windowSoftInputMode="stateHidden|adjustPan"
中的AndroidManifest
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
答案 1 :(得分:-1)
只能在您的活动代码中的AndroidManifest中输入此行android:windowSoftInputMode="adjustPan"
。