Android 调整键盘上方的相对长度
我有以下Android 调整键盘上方的相对长度,android,Android,我有以下.xml文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/main_layout" android:layout_width="match_parent" android:layout_height="match_parent" android
.xml
文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/grey_100"
android:orientation="vertical"
android:weightSum="4">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/login_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/welcome_bottom_margin"
android:layout_marginTop="@dimen/login_logo_margin_top"
android:theme="@style/ThemeOverlay.MyTitleText"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/status"
style="@style/ThemeOverlay.MyTextDetail"
android:text="@string/signed_out" />
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="@color/grey_300"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/email_password_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:paddingRight="16dp">
<EditText
android:id="@+id/field_email"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/hint_email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/field_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/hint_password"
android:inputType="textPassword" />
</LinearLayout>
<LinearLayout
android:id="@+id/email_password_buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/email_password_fields"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<Button
android:id="@+id/email_sign_in_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/sign_in"
android:theme="@style/ThemeOverlay.MyDarkButton" />
<Button
android:id="@+id/email_create_account_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/create_account"
android:theme="@style/ThemeOverlay.MyDarkButton" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
我得到以下结果:
.添加
android:windowSoftInputMode="adjustResize"
在活动标签的清单中添加
android:windowSoftInputMode="adjustResize"
在活动标签的清单中使用
使用只需在活动中添加这行代码即可:
<activity
android:windowSoftInputMode="adjustResize"
android:name=".youractivity"
/>
只需在活动中添加这行代码:
<activity
android:windowSoftInputMode="adjustResize"
android:name=".youractivity"
/>
在AndroidManifest.xml中为您的活动设置softInputMode
<activity
android:windowSoftInputMode="adjustResize"
android:name=".MyActivity"
/>
并将xml替换为以下代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/login_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/welcome_bottom_margin"
android:layout_marginTop="@dimen/login_logo_margin_top"
android:theme="@style/ThemeOverlay.MyTitleText"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/status"
style="@style/ThemeOverlay.MyTextDetail"
android:text="@string/signed_out" />
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:background="@color/grey_300"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/email_password_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:paddingRight="16dp">
<EditText
android:id="@+id/field_email"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/hint_email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/field_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/hint_password"
android:inputType="textPassword" />
</LinearLayout>
<LinearLayout
android:id="@+id/email_password_buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/email_password_fields"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<Button
android:id="@+id/email_sign_in_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/sign_in"
android:theme="@style/ThemeOverlay.MyDarkButton" />
<Button
android:id="@+id/email_create_account_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/create_account"
android:theme="@style/ThemeOverlay.MyDarkButton" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
在AndroidManifest.xml中为您的活动设置softInputMode
<activity
android:windowSoftInputMode="adjustResize"
android:name=".MyActivity"
/>
并将xml替换为以下代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:gravity="center_horizontal"
android:orientation="vertical">
<ImageView
android:id="@+id/login_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/welcome_bottom_margin"
android:layout_marginTop="@dimen/login_logo_margin_top"
android:theme="@style/ThemeOverlay.MyTitleText"
app:srcCompat="@mipmap/ic_launcher" />
<TextView
android:id="@+id/status"
style="@style/ThemeOverlay.MyTextDetail"
android:text="@string/signed_out" />
</LinearLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:background="@color/grey_300"
android:gravity="center_vertical">
<LinearLayout
android:id="@+id/email_password_fields"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:paddingRight="16dp">
<EditText
android:id="@+id/field_email"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/hint_email"
android:inputType="textEmailAddress" />
<EditText
android:id="@+id/field_password"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:hint="@string/hint_password"
android:inputType="textPassword" />
</LinearLayout>
<LinearLayout
android:id="@+id/email_password_buttons"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/email_password_fields"
android:orientation="horizontal"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<Button
android:id="@+id/email_sign_in_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/sign_in"
android:theme="@style/ThemeOverlay.MyDarkButton" />
<Button
android:id="@+id/email_create_account_button"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/create_account"
android:theme="@style/ThemeOverlay.MyDarkButton" />
</LinearLayout>
</RelativeLayout>
</LinearLayout>
</ScrollView>
将权重交换为适用于我的电子邮件字段的LinearLayout=“1”
和ScrollView=“3”
,但当我单击密码字段时,它会像以前一样将按钮一分为二。朋友,不要对嵌套视图使用权重。例如,您为嵌套按钮和EditTextsOk使用了权重,但无论如何都不能为LinearLayout
s设置权重,对吗?无法理解!:(将权重交换为LinearLayout=“1”
和ScrollView=“3”
这适用于我的电子邮件字段,但当我单击我的密码字段时,它会像以前一样将按钮一分为二。朋友,不要对嵌套视图使用权重。例如,你对嵌套按钮和EditTextsOk使用了权重,但不能为线性布局设置权重,对吗?无法理解!:(