gpt4 book ai didi

android - SoftKeyboard 隐藏 EditText

转载 作者:IT老高 更新时间:2023-10-28 23:08:04 26 4
gpt4 key购买 nike

我有一个布局,它使用 EditText 让用户搜索数据库并填充 ListView。 EditText 大约是屏幕顶部的 2/3(位于 ImageView 上方,然后是一些介绍性文本。)

问题是软键盘隐藏了 EditText,所以用户看不到他在输入什么。 (我禁用了自动建议。)

我已经尝试过 LinearLayout、RelativeLayout、填充和不同的对齐/居中,但我仍然无法让它正常工作。 EditText 要么被隐藏,要么被推离屏幕顶部,要么被“压扁”并扭曲。

建议???

一种可能的解决方法是将 EditText 移动到屏幕顶部。但是,这与我得到的图形设计有所不同。

另一个可能的解决方法是让软键盘全屏打开(但不确定如何)。这仍然会隐藏 EditText,但随后我可以重新启用自动建议,以便用户可以看到他正在输入的内容......有点......因为他只能看到 suggestions 的内容他在打字。

这是我最近的尝试。参见“introFrame”。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:orientation="vertical">

<LinearLayout android:id="@+id/titleContainer"
android:orientation="horizontal" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:text="@string/title_string"
android:textSize="15sp" android:textColor="#FFFFFF"
android:textStyle="bold" android:paddingLeft="5dp"
android:layout_height="fill_parent" android:layout_width="wrap_content" />
</LinearLayout>

<FrameLayout
android:id="@+id/introFrame"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<ImageView
android:src="@drawable/main_search_image"
android:scaleType="center"
android:layout_gravity="center"
android:layout_height="wrap_content"
android:layout_width="wrap_content"/>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingTop="140dp" >
<LinearLayout android:id="@+id/introSearchContainer"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" >
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1" >
<EditText android:id="@+id/intro_search_box"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint=" Enter keyword "
android:imeOptions="actionGo"
android:inputType="textFilter"
android:maxLines="1" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<Button android:id="@+id/intro_search_button"
android:background="@drawable/custom_button_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
<TextView
android:text="@string/search_intro"
android:textSize="15sp"
android:textColor="#FFFFFF"
android:layout_height="wrap_content"
android:layout_width="fill_parent" />
</LinearLayout>
</FrameLayout>

<LinearLayout android:id="@+id/listContainer"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@+id/itemlist" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:cacheColorHint="#00000000" />
<TextView android:text="No data found" android:layout_width="fill_parent"
android:layout_height="fill_parent" android:gravity="center"
android:textSize="16sp" android:textColor="#FFFFFF" android:id="@+id/android:empty" />
</LinearLayout>

</LinearLayout>

最佳答案

您要查找的是 Activity 的 windowSoftInputMode属性。你在你的 AndroidManifest.xml 文件中设置它,并给它一个值,例如:

  • adjustResize:“Activity 的主窗口总是调整大小,以便为屏幕上的软键盘腾出空间。”

  • adjustPan:“Activity 的主窗口没有调整大小来为软键盘腾出空间。相反,窗口的内容会自动平移,这样当前的焦点就不会被键盘和用户始终可以看到他们正在输入的内容。这通常不如调整大小,因为用户可能需要关闭软键盘才能到达窗口的模糊部分并与之交互。”

adjustResize 可能对您有用,只要您将布局包装在 ScrollView 中。如果您在背景中有位图图像,它可能会产生负面影响,因为它也会调整大小,在这种情况下您可能需要使用 adjustPan。

<activity android:windowSoftInputMode="adjustResize" />

<activity android:windowSoftInputMode="adjustPan" />

更多信息可以在上面的链接中找到。

关于android - SoftKeyboard 隐藏 EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4432903/

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