我在我的应用程序中使用了搜索小部件。我想把它放在所有东西的前面,我做到了,并在真实设备上进行了测试。它运作良好。但是当我在 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/