相关疑难解决方法(0)

如何检查Android中软件键盘的可见性?

我需要做一个非常简单的事情 - 找出是否显示了软件键盘.这在Android中可行吗?

android visibility android-softkeyboard

502
推荐指数
9
解决办法
26万
查看次数

Android中的活动中的软键盘打开和关闭监听器

我有一个Activity有5 EditText秒的地方.当用户点击第一个时EditText,软键盘会打开以在其中输入一些值.我想设置一些其他ViewGone对软键盘打开时的可见性,以及用户点击第一个时的可见性,以及当按下后面按钮EditText时软键盘关闭时EditText.然后我想将其他View人的可见性设置为可见.

EditText在Android中第一次点击软键盘时,是否有任何监听器或回调或任何黑客攻击?

android android-softkeyboard android-edittext android-activity

123
推荐指数
11
解决办法
14万
查看次数

底部导航栏随键盘向上移动

我在片段中使用滚动视图,但是当键盘按原样显示时屏幕没有向上滚动。这是场景:我有 mainActivity,它有底部导航栏和一个框架布局,它用作活动的容器。这是代码:

<?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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context=".MainActivity"
    >
    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true" />

    <android.support.design.widget.BottomNavigationView
        android:background="@color/clear_white"
        android:id="@+id/navigation"
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:layout_alignParentBottom="true"
        app:itemIconTint="@color/blue_navbar_icon"
        app:itemTextColor="@color/blue_navbar_icon"
        app:menu="@menu/navigation" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

片段屏幕有一些输入字段和按钮,它们包裹在约束布局中,然后约束布局包裹在 scrollView 中,以便在键盘处于活动状态时可以向上滚动。这是片段xml文件的代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"

        >
        <include
            android:id="@+id/app_bar_new"
            layout="@layout/app_bar_new"
            app:layout_constraintBottom_toTopOf="@+id/btn_get_location"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/btn_get_location"
            style="@style/btn_style"
            android:layout_width="match_parent"
            android:layout_height="43dp"
            android:layout_marginBottom="8dp"
            android:layout_marginEnd="11dp"
            android:layout_marginLeft="11dp"
            android:layout_marginRight="11dp"
            android:layout_marginStart="11dp"
            android:layout_marginTop="12dp"
            android:text="@string/get_location_btn_str"
            app:layout_constraintBottom_toTopOf="@+id/tv_long"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/app_bar_new" />

        <EditText
            android:id="@+id/et_name_of_attr"
            style="@style/input_field_style"
            android:layout_width="0dp"
            android:layout_height="47dp"
            android:layout_marginBottom="7dp"
            android:layout_marginEnd="11dp"
            android:layout_marginLeft="11dp"
            android:layout_marginRight="11dp" …
Run Code Online (Sandbox Code Playgroud)

xml android scrollview bottomnavigationview

13
推荐指数
2
解决办法
9374
查看次数

setOnApplyWindowInsetsListener - statusBar颜色问题

为什么当我使用

setOnApplyWindowInsetsListener

状态栏颜色消失?

 fun isKeyboardVisible(view: View) {
    ViewCompat.setOnApplyWindowInsetsListener(view) { view, windowInsets ->
        val isKeyboardVisible = windowInsets.isVisible(WindowInsetsCompat.Type.ime())
        if (isKeyboardVisible) Toast.makeText(applicationContext, "opened", Toast.LENGTH_SHORT).show()
        else Toast.makeText(applicationContext, "closed", Toast.LENGTH_SHORT).show()

        windowInsets
    }
}
Run Code Online (Sandbox Code Playgroud)

android windowinsets

6
推荐指数
1
解决办法
444
查看次数

ViewCompat.setOnApplyWindowInsetsListener() 更改系统导航栏的背景

应用程序通常有这样的导航栏:

在此输入图像描述

但是当我添加ViewCompat.setOnApplyWindowInsetsListener()

ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { _, insets ->
    binding.showingKeyboard = insets.isVisible(WindowInsetsCompat.Type.ime())
    WindowInsetsCompat.CONSUMED
}
Run Code Online (Sandbox Code Playgroud)

或者

ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { _, insets ->
    binding.showingKeyboard = insets.isVisible(WindowInsetsCompat.Type.ime())
    insets
}
Run Code Online (Sandbox Code Playgroud)

就变成这样了

在此输入图像描述

为什么会发生这种情况?我不希望这个方法改变任何东西。我只是想用它来检测虚拟键盘是否可见(没有其他好的方法可以做到这一点)

android windowinsets

5
推荐指数
1
解决办法
2794
查看次数

即使打开键盘,如何让BottomNavigationView保持关闭状态?

我有一个 editText 视图、一个 RecyclerView 和一个底部导航视图。当我提示 EditText 时,键盘会打开并且 RecyclerView 被填充。但是BottomNavigationview 仍然在现在打开的键盘之上,而我的Recyclerview 在bottomnavigation 视图之上。现在 recyclerview 和 edittext 在键盘打开时重叠。有没有办法限制在键盘打开时底部导航视图消失?

这是我的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout     xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".Abfahrtsmonitor">


<EditText
    android:id="@+id/editText"
    android:layout_width="360dp"
    android:layout_height="47dp"
    android:ems="10"
    android:hint="Suche"
    android:inputType="textPersonName"
    tools:layout_editor_absoluteX="16dp"
    tools:layout_editor_absoluteY="7dp" />

<android.support.v7.widget.RecyclerView
    android:id="@+id/Recycleview"
    android:layout_width="370dp"
    android:layout_height="441dp"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="4dp"
    android:layout_marginStart="8dp"
    app:layout_constraintBottom_toTopOf="@+id/navigation"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

<android.support.design.widget.BottomNavigationView
    android:layout_width="368dp"
    android:layout_height="48dp"
    tools:layout_editor_absoluteX="8dp"
    tools:layout_editor_absoluteY="511dp"
    android:id="@+id/navigation"
    android:layout_marginEnd="0dp"
    android:layout_marginStart="0dp"
    android:background="?android:attr/windowBackground"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:menu="@menu/navigation"/>
Run Code Online (Sandbox Code Playgroud)

这是它现在的样子: 它不应该看起来如何

xml android bottomnavigationview

0
推荐指数
1
解决办法
1711
查看次数