gpt4 book ai didi

android - 存在键盘时调整 ListView 的大小

转载 作者:太空狗 更新时间:2023-10-29 12:40:45 25 4
gpt4 key购买 nike

当存在软件键盘时,我在调整 ListView 的大小时遇到​​了一点问题。基本上,我使用的是 Google map API,其中 map 覆盖整个屏幕,带有透明的操作栏,并且我在 map 上有一个车辆列表,它位于从右侧滑入的 fragment 中。当右侧面板出现时,整个布局如下所示:enter image description here

现在我正在使用 android:windowSoftInputMode="adjustPan" 所以当我集中编辑文本和键盘滑出时,它看起来像这样:enter image description here

这不好,因为我看不到整个车辆列表。我尝试过使用 android:windowSoftInputMode="adjustResize",但由于我使用的是透明操作栏,因此发生了这种情况:enter image description here我可以看到整个 listView 并且它滚动得很好,但我的 EditText 现在位于 ActionBar 下方。基本上我想要实现的是两种情况的组合,所以它看起来像这样:enter image description here现在这是我的列表 fragment 的布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
tools:context="hidden">

<EditText
android:id="@+id/vehicle_search_edit_text"
android:layout_width="fill_parent"
android:layout_height="45dp"
android:focusable="true"
android:hint="Search"
android:imeOptions="actionSearch"
android:singleLine="true" />

<ListView
android:id="@+id/list_vehicles"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/vehicle_search_edit_text"
android:animateLayoutChanges="true"
android:fastScrollEnabled="true"
/>
</RelativeLayout>

这是我的 MainActivity 的布局

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:layout_width="match_parent"
android:layout_height="match_parent">

<RelativeLayout
android:id="@+id/layout_root_map"
android:layout_width="match_parent"
android:layout_height="match_parent" />

<RelativeLayout
android:id="@+id/layout_root_vehicles"
android:layout_width="350dp"
android:layout_height="match_parent"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />

<RelativeLayout
android:id="@+id/layout_root_settings"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" />

</RelativeLayout>

我熟悉以编程方式设置布局的高度,因为我已经在嵌套了 listfragment 的布局中这样做了。 ActionBar 必须保持透明,因为这是我老板的要求。

最佳答案

我相信,因为您的操作栏类似于 Google map 使用的操作栏,所以它通常占用的空间被认为可供其他布局使用,在您的情况下为 fragment 。您可以尝试为 fragment 容器指定填充或边距,例如:

android:paddingTop="?android:attr/actionBarSize"

(操作栏的大小)。

连同

android:windowSoftInputMode="adjustResize"

这应该有效。

padding值不满意,手动提供更合适的值。

关于android - 存在键盘时调整 ListView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26485980/

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