gpt4 book ai didi

android - 显示键盘时布局调整大小错误

转载 作者:搜寻专家 更新时间:2023-11-01 08:59:42 26 4
gpt4 key购买 nike

当我点击我的编辑文本并出现我的键盘时,一切似乎都正常,如下图所示:

enter image description here

但是当它不得不再缩小一点时,我的图像被调整大小并扩展了一个不可见的区域,而我的 TextView 仍然和开始时一样大,然后我的布局就不再起作用了:

enter image description here

我尝试为 xhdpi 分辨率创建新图像和尺寸,但没有任何效果

我该如何解决?我怎样才能按比例调整一切。 (我试图放置一个 ScrollView ,但我的布局中有一个 ListView,如您在下面的代码中所见)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/login_background"
android:descendantFocusability="beforeDescendants"
android:clickable="true"
android:focusableInTouchMode="true"
tools:context=".LoginActivity"
android:id="@+id/fundoLogin" >

<RelativeLayout
android:id="@+id/relativeLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >

<ImageView
android:id="@+id/image_login_fields"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/image_logo"
android:layout_centerHorizontal="true"
android:contentDescription="@string/img_login_fields_desc"
android:src="@drawable/login_fields">

</ImageView>

<ImageView
android:id="@+id/image_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="@dimen/margin_logo_to_fields"
android:contentDescription="@string/img_logo_desc"
android:src="@drawable/logo" />

<TextView
android:id="@+id/labelLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@id/image_login_fields"
android:layout_alignLeft="@id/image_login_fields"
android:layout_marginTop="@dimen/margin_top_label_login"
android:layout_marginLeft="@dimen/margin_left_label_login"
android:text="@string/login"
android:textSize="@dimen/login_txt_size"
/>

<EditText
android:id="@+id/txtFieldLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/margin_left_txt_field_login"
android:layout_alignTop="@id/image_login_fields"
android:layout_toRightOf="@id/labelLogin"
android:layout_alignRight="@id/image_login_fields"
android:layout_marginRight="@dimen/margin_right_txt_field_login"
android:layout_marginTop="@dimen/margin_top_txt_field_login"
android:ems="10"
android:textSize="@dimen/login_txt_size"
android:hint="@string/txtFieldLoginHint"
android:singleLine="true" >
</EditText>

<TextView
android:id="@+id/labelSenha"
android:layout_below="@id/labelLogin"
android:layout_alignLeft="@id/image_login_fields"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_top_label_senha"
android:layout_marginLeft="@dimen/margin_left_label_senha"
android:text="@string/senha"
android:textSize="@dimen/senha_txt_size" />

<EditText
android:id="@+id/txtFieldSenha"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtFieldLogin"
android:layout_alignLeft="@id/txtFieldLogin"
android:layout_alignRight="@id/txtFieldLogin"
android:layout_marginTop="@dimen/margin_top_txt_field_senha"
android:ems="10"
android:hint="@string/txtFieldSenhaHint"
android:singleLine="true"
android:textSize="@dimen/senha_txt_size"></EditText>

<ImageButton
android:id="@+id/btnEntrar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@id/image_login_fields"
android:layout_alignBottom="@id/image_login_fields"
android:layout_marginRight="@dimen/margin_right_btn_entrar"
android:layout_marginBottom="@dimen/margin_bottom_btn_entrar"
android:background="@drawable/btn_entrar_clicked"
android:contentDescription="@string/btn_entrar_desc"
/>

<ListView
android:id="@+id/listEmails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/image_login_fields"
android:layout_alignRight="@id/image_login_fields"
android:layout_alignLeft="@id/txtFieldLogin"
android:background="@drawable/rounded_corner"
android:visibility="invisible" >
</ListView>

</RelativeLayout>

<Button
android:id="@+id/btnTeste"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:textSize="@dimen/btn_teste_txt_size"
android:layout_marginRight="@dimen/margin_right_btn_teste"
android:layout_marginBottom="@dimen/margin_bottom_btn_teste"
android:text="@string/btnCredenciaisDeTesteTxt"
android:textColor="@color/white" />

</RelativeLayout>

最佳答案

您正在寻找的是 AndroidManifest 中的 android:windowSoftInputMode 属性。这控制您的屏幕将如何响应正在显示的键盘。现在看来它正在使用 adjustResize 并且您想要 adjustPan 所以在 list 中的 Activity 声明中添加:

<activity android:windowSoftInputMode="adjustPan"

您可以在此处详细了解您的选择:

http://developer.android.com/guide/topics/manifest/activity-element.html#wsoft

如果您想要调整屏幕大小,您需要重新考虑您的布局。

首先,将登录背景作为单独的 ImageView 是一种糟糕的形式。由于您希望它调整大小,因此您应该以最小的必要尺寸为图像创建一个 9 补丁。这使得容器定义图像的大小,而不是图像本身。

其次,将您的 TextViewsEditText 单独包装在 RelativeLayout 中,然后应用您创建的 9 补丁作为 的背景相对布局。现在,您将始终拥有一个登录框,它以您设计的方式包装您的 View ,即使在调整大小时也是如此。

关于android - 显示键盘时布局调整大小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16173067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com