Android bringToFront()在棒棒糖中不起作用
我在我的应用程序中使用了搜索小部件。我想把它摆在大家面前,我做了,并在真正的设备上进行了测试。它工作得很好。但当我在棒棒糖装置上测试时,它不起作用。然后我才知道,Android bringToFront()在棒棒糖中不起作用,android,android-view,android-api-levels,Android,Android View,Android Api Levels,我在我的应用程序中使用了搜索小部件。我想把它摆在大家面前,我做了,并在真正的设备上进行了测试。它工作得很好。但当我在棒棒糖装置上测试时,它不起作用。然后我才知道,bringToFront()在棒棒糖中不起作用。所以我可以使用setElevation()或其他东西(可能是setZ)。但是,我想在从API 17到最新版本的所有android设备上使用它。我该怎么做 我正在下面粘贴我的代码 @Override public void onCreateOptionsMenu(Menu menu,
bringToFront()
在棒棒糖中不起作用。所以我可以使用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();
}
我已经弄明白了
if (android.os.Build.VERSION.SDK_INT >= 21) //Lollipop
{
view.setZ(15);
for (int i = 0; i < view.getParent().getChildCount(); i++)
{
if(view != view.getParent().getChildAt(i))
{
view.getParent().getChildAt(i).SetZ(5);
}
}
}
view.bringToFront();
for (int i = 0; i < view.getParent().getChildCount(); i++)
{
view.getParent().getChildAt(i).invalidate();
}
view.getParent().requestLayout();
view.getParent().invalidate();
if(android.os.Build.VERSION.SDK\u INT>=21)//棒棒糖
{
视图。setZ(15);
对于(int i=0;i
测试
- 棉花糖
- 水母
android:elevation=“2dp”
,如果不起作用,则可以设置更高的高程。
问题是,隐藏或重叠searchview的图元的标高高于searchview。可以将重叠图元的高程设置为0dp。e、 g:
android:elevation=“0dp”
。bringToFront()不仅仅对棒棒糖有效。这有望解决问题然后才知道bringToFront()
在棒棒糖中效果不好如何?能否替换searchView.bringToFront()代码>带有视图。bringChildToFront(searchview)代码>也是一样的,好吧,让我试试。不。。没用…:(@elltz你找到答案了吗?是的!!我用android:elevation做的。我的搜索视图显示在滑动选项卡布局下面。我的搜索视图的高度设置低于滑动选项卡。因此我将搜索高度设置为2dp,并将滑动选项卡的高度设置为0 dp。效果非常好。