【问题标题】:Soft Keyboard Hiding ActionBar while using adjustPan使用adjustPan时软键盘隐藏ActionBar
【发布时间】:2014-06-17 07:38:48
【问题描述】:

我需要将这三个项目全部设置为可见
1.操作栏
2.列表视图
3. EditText(在底部)
当我点击EditText 时,它会推动背景图像并挤压它。我看到了一些教程并使用了android:windowSoftInputMode="adjustPan",它解决了挤压问题,但创建了一个新问题。当SoftKeyboard 出现时,它也会隐藏ActionBar。我已经访问了很多问题,但实际上没有一个是有帮助的。有什么方法可以设置ActionBar 始终可见无论屏幕上发生什么等等...

已编辑

用于显示ListViewEditText的片段的xml是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


    <ListView
        android:id="@id/android:list"
        style="@style/ContactListView"
        android:layout_width="match_parent"
        android:layout_height="389dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:isScrollContainer="false" />

    <TextView
        android:id="@id/android:empty"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_above="@+id/editText1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:fontFamily="sans-serif-light"
        android:gravity="center"
        android:text="@string/no_contacts"
        android:textAppearance="?android:attr/textAppearanceLarge" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentBottom="true"
        android:background="@android:color/holo_blue_dark"
        android:ems="10" 
        android:imeOptions="flagNoExtractUi"/>

</RelativeLayout>

已编辑(第 2 次)

快照是:

【问题讨论】:

  • 发布该问题的 xml
  • 我在我的项目中遇到了类似的问题。我的解决方案是使用滚动视图并将每个视图都放在其中。但是你有一个列表视图。
  • 是的,我需要使用它,因为我正在开发像联系人管理器这样的应用程序。
  • 尝试将重力“底部”设置为您的编辑文本
  • 您找到解决方案了吗?

标签: android android-layout android-listview android-actionbar


【解决方案1】:

尝试在您的活动标签中使用android:windowSoftInputMode="adjustResize|stateHidden"

【讨论】:

  • 我认为这缺乏解释,所以我会尝试解释。 AdjustPan 只是将所有内容向上移动,有些东西可能会超出屏幕,因此即使键盘占用了一些空间,聚焦的 View 也是可见的。 adjustResize 尝试以这样一种方式调整你的东西的大小,以使所有视图仍然可见。如果您需要进一步解释,请参阅blog.vogella.com/2010/10/25/android-windowsoftinputmode。我真的不知道stateHidden,但我猜当输入视图失去焦点时,它会使键盘不停留。
  • 是的,“adjustResize”总是调整活动主窗口的大小,为屏幕上的软键盘腾出空间,但“adjustPan”会导致窗口自动平移。顺便说一句,“stateHidden”通常用于上述情况,当进入活动时,edittext不会导致键盘显示。欲了解更多信息,您可以访问:developer.android.com/guide/topics/manifest/…
【解决方案2】:

我之前在Relative 布局中遇到了与EditText 相同的问题,在互联网上搜索了几个线程后我失败了,但我通过将bottom_padding 添加到@987654324 来尝试解决它@ 修复了它。

【讨论】:

  • ` android:paddingBottom="15dp" `...还是不行,尝试了不同的值。
  • @BSTKaal 根据您发布的图片,当您将 windowSoftInputMode 设置为 adjustSpan 时,您无能为力。我发布的答案是完全不同的问题。
  • @BSTKaal 然后他们不常规操作栏,他们使用视图作为操作栏,并且每次调用 edittext 时都会定位它。
  • @BSTKaal 我认为对于 WhatsApp 和环聊,它可以通过使用 adjustResize 来工作,并且只有当你已经在底部时,它才会滚动到底部。
  • 添加 bottom_padding 如何解决您的问题。我正在尝试解决类似的问题,但它是一个表单,我无法控制表单字段的填充。如果您知道为什么您的解决方案解决了问题,请分享。它可能会给我一个关于我的问题的想法。
【解决方案3】:

尝试使用此代码来显示文件和活动以更改布局。 android:windowSoftInputMode="stateAlwaysVisible|stateHidden"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2011-02-17
    • 2013-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多