android - bringToFront() 在 Lollipop 中不起作用

标签 android android-view android-api-levels

我在我的应用程序中使用了搜索小部件。我想把它放在所有东西的前面,我做到了,并在真实设备上进行了测试。它运作良好。但是当我在 Lollipop 设备上测试它时,它不起作用。然后我开始知道 bringToFront() 在 Lollipop 中效果不佳。所以我可以使用 setElevation() 或其他东西(也许是 setZ)。但是,我想在从 API 17 到最新版本的每台 Android 设备上使用它。我该怎么做?

我在下面粘贴我的代码。

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        menu.clear();
        MaterialSearchView searchView = (MaterialSearchView) view.findViewById(R.id.search_view); //Search experiment
        inflater.inflate(R.menu.toolbar_menu, menu);
        super.onCreateOptionsMenu(menu, inflater);
        MenuItem item = menu.findItem(R.id.search_top);
        searchView.setMenuItem(item);
        searchView.bringToFront();
}

最佳答案

检查搜索 View 的高度。 要设置高程,请转到 XML 文件并在 searchView 中设置 android:elevation="2dp" 或者如果不起作用则可能更高。 问题是,隐藏或重叠搜索 View 的元素比您的搜索 View 具有更高的高度。您可以将重叠元素的高度设置为 0dp。例如:android:elevation="0dp"。 bringToFront() 不仅适用于 Lollipop。这有望解决问题

关于android - bringToFront() 在 Lollipop 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42089420/

相关文章:

android - 更改 EditText 焦点边框

android - 11 岁以下 api 的 setTop 替代品

android - 如何在按钮中设置textview和drawable之间的距离?

android - 在自定义 ROM 中进行初始设备设置/启动时同类的首选应用程序

android - 重用 ListView 行中的 View - "The specified child already has a parent"异常

Android:无法在 XML 中实例化自定义 View

java - 位图 API 上的 ScriptIntrinsicBlur<14

android - 在开发人员控制台中将 Android 目标 Api 级别 23 降级到 22

android - 当应用程序处于前台时无法接收 FCM 通知

Android ViewGroup : what should I do in the onLayout() override?