【问题标题】:Snackbar expands when soft keyboard is showing显示软键盘时 Snackbar 展开
【发布时间】:2018-04-08 00:08:22
【问题描述】:

我看到了一个问题,即当软键盘启动时,小吃栏会自行扩展以适应屏幕上列表视图的大小。

有问题的小吃店

普通小吃栏(键盘未启动)

我已经能够通过以编程方式设置高度来稍微解决这个问题,但是随后文本从小吃栏中消失了,我不知道如何将其添加回来。

                ViewGroup.LayoutParams lp = snackbarView.getLayoutParams();
                lp.height = 150;
                snackbarView.setLayoutParams(lp);

snackbar 添加如下:

        mConnectionLostSnackbar = Snackbar.make(view, mConnectionLostString, Snackbar.LENGTH_INDEFINITE);
        final View snackbarView = mConnectionLostSnackbar.getView();
        TextView textView = snackbarView.findViewById(android.support.design.R.id.snackbar_text);
        textView.setLineSpacing(0, SNACKBAR_LINE_SPACING_MULTIPLIER);
        snackbarView.getViewTreeObserver().addOnPreDrawListener(new NotDismissiblePreDrawListener(snackbarView));
        mConnectionLostSnackbar.show();

如果有任何关于在键盘启动时不让小吃栏展开的想法,我将不胜感激。提前致谢。

【问题讨论】:

    标签: android android-snackbar


    【解决方案1】:

    只需将此属性放在您的 Manifest 文件中以进行适当的活动即可。

    <activity android:name=".YourActivity"
              android:windowSoftInputMode="adjustResize"/>
    

    【讨论】:

      【解决方案2】:

      我注意到,这只发生在 Snackbar 附加到 CoordinatorLayout 时,该 CoordinatorLayout 在层次结构中的某个位置具有另一个 CoordinatorLayout 父级。我猜想 由于多个 CoordinatorLayouts 而被重复,并且 Snackbar 最终占据了整个屏幕。

      解决方案是将 Snackbar 附加到最顶层的 CoordinatorLayout。在我的场景中,我有一个带有 CoordinatorLayout 内容视图的 Activity,它承载了一个以 CoordinatorLayout 作为根视图的片段。当fragment需要显示一个Snackbar时,它会将它附加到Activity的CoordinatorLayout上,然后在显示键盘的时候就可以正常运行。请注意,我现在使用的是 AndroidX 库而不是支持库,因此行为可能会略有不同。

      【讨论】:

        【解决方案3】:

        同样的事情发生在我身上,但我找不到问题的原因。

        为了避免扩展快餐栏,我决定将它放在键盘后面。这是通过将此行添加到清单上所需的活动来实现的

        android:windowSoftInputMode="adjustNothing"
        

        我真的很想知道为什么会这样,因为在这个项目中我经常使用snackbar,而且它只在一项活动中中断

        【讨论】:

        • 感谢您的回答,但是我需要在我的用例中保持小吃栏可见。
        • 您需要同时显示键盘和小吃吧吗?在我的用例中,我隐藏了键盘并显示了小吃栏,也许这对你有用
        • 在这种情况下,我需要同时显示它们。
        猜你喜欢
        • 1970-01-01
        • 2016-01-13
        • 2013-12-16
        • 2012-07-04
        • 2012-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多