Java 如何在它上面绘制视图´;什么是父布局?

Java 如何在它上面绘制视图´;什么是父布局?,java,android,layout,view,Java,Android,Layout,View,因此,我正在编写一个自定义组件,它基本上是一个EditText,底部附有一个自定义下拉菜单。这将承载一个搜索建议列表。现在,我通过扩展一个带有EditText和我的SuggestionBox视图的LinearLayout来实现这一点。即我使用this.addView(searchEditText) 和 this.addView(suggestionBox) 这很好,但是当我将组件放在线性布局中时,组件下面的视图会被移动,以便为下拉菜单腾出空间 我希望下拉列表覆盖包含布局中的任何其他视图。我该怎么

因此,我正在编写一个自定义组件,它基本上是一个EditText,底部附有一个自定义下拉菜单。这将承载一个搜索建议列表。现在,我通过扩展一个带有EditText和我的SuggestionBox视图的LinearLayout来实现这一点。即我使用
this.addView(searchEditText)
this.addView(suggestionBox)

这很好,但是当我将组件放在线性布局中时,组件下面的视图会被移动,以便为下拉菜单腾出空间

我希望下拉列表覆盖包含布局中的任何其他视图。我该怎么做

例如,如果零部件在线性布局中使用,且其下方有视图,则我希望下拉列表覆盖其他视图


现在,我知道这可以通过使用FrameLayout作为父布局来实现,但我希望无论使用的是什么父布局,组件都是可用的。

好的,所以我可能应该发布这个问题的答案,以防有人偶然发现这个问题。我设法解决了它与一个丑陋的修复位。我用下面的行找到主内容视图,然后直接将自定义视图添加到其中

FrameLayout layout = (FrameLayout) ((Activity) context).getWindow().getDecorView().findViewById(android.R.id.content);
然后在
OnLayoutChange()
中,我将其发送到布局堆栈的顶部

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    listParams.setMargins(getLeft(),getTop()+getHeight(),getRight(),getBottom());
    list.setLayoutParams(listParams);
    list.bringToFront();
}
然而,还有另一种方法(可能更好)可以做到这一点。这是通过使用PopupWindow类实现的。我还没有完全尝试过,但应该这样使用:

PopupWindow window = new PopupWindow();
    window.setContentView(customView);
然后将其添加到视图中


希望这对别人有帮助

好的,所以我可能应该发布这个问题的答案,以防有人偶然发现这个问题。我设法解决了它与一个丑陋的修复位。我用下面的行找到主内容视图,然后直接将自定义视图添加到其中

FrameLayout layout = (FrameLayout) ((Activity) context).getWindow().getDecorView().findViewById(android.R.id.content);
然后在
OnLayoutChange()
中,我将其发送到布局堆栈的顶部

@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
    super.onLayout(changed, l, t, r, b);
    listParams.setMargins(getLeft(),getTop()+getHeight(),getRight(),getBottom());
    list.setLayoutParams(listParams);
    list.bringToFront();
}
然而,还有另一种方法(可能更好)可以做到这一点。这是通过使用PopupWindow类实现的。我还没有完全尝试过,但应该这样使用:

PopupWindow window = new PopupWindow();
    window.setContentView(customView);
然后将其添加到视图中


希望这对别人有帮助

对于类似图层的视图或图层,应使用相对布局drawable@Divyesh你能再详细解释一下吗?谢谢。你想使用邮件图标上显示的未读邮件数吗?@Divyesh不,这根本不是问题。我想创建一个视图以覆盖视图组中的其他视图。我对此不太了解。对于类似图层的视图或图层,应该使用相对布局drawable@Divyesh你能再详细解释一下吗?谢谢。你想使用邮件图标上显示的未读邮件数吗?@Divyesh不,这根本不是问题。我想创建一个视图以覆盖视图组中的其他视图。对此我知道得不多。