android - 线性布局上有类似 "bringToFront()"的方法吗?

标签 android android-layout surfaceview

嗯,我正在制作一个游戏,它使用从 SurfaceView 扩展的类来表示游戏屏幕,但它与按钮一起使用,所以我在 xml 上定义“按钮面板”然后以编程方式将“GameView”添加到包含所有内容的 LinearLayout,并将“按钮面板”置于前面,就像这样:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    LinearLayout rl1 = (LinearLayout)findViewById(R.id.rl1);
    rl1.addView(new GameView(this));
    SquareLayout sq1 = (SquareLayout)findViewById(R.id.square);
    //the control buttons are in another custom layout called "SquareLayout"
    sq1.bringToFront();
}

这里的问题是我希望包含游戏按钮的布局(SquareLayout)填充 RelativeLayout 高度的一半( Activity 设置为横向),我将 RelativeLayout 变形为垂直 LinearLayout ,再添加一个SquareLayout,将两个weight的属性都设置为1,就变成这样了:

enter image description here

现在的问题是“bringToFront();”方法在 LinearLayout 上不起作用,所以我无法在添加游戏 View 后修改按钮面板的 z,所以我的问题是是否有办法使按钮面板就像在 RelativeLayout 或类似方法上的图像上一样就像适用于 LinearLayout 的“bringToFront()”。

最佳答案

尝试在您的 LinearLayout 上调用方法 bringChildToFront(View) http://developer.android.com/reference/android/view/ViewGroup.html#bringChildToFront(android.view.View) .该参数将是您想要显示在其 sibling 之上的 View 。

关于android - 线性布局上有类似 "bringToFront()"的方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31487357/

相关文章:

android - 如何在 Android 中实现分页 ListView

android - Stetho 和 chrome :inspect pending REST petitions

android - 如何在 Constraint Layout 中同时应用左约束和右约束时将布局左对齐?

android - 如何禁用长按android的键盘

android - 在 inflated layout 中使用 setText() 到 TextView() 后不显示文本

android - 修复 Android Camera 应用的宽高比和旋转

android - 为什么文件没有被 file.delete() 删除?

java - 生命周期配置未涵盖的插件执行 : com. jayway.maven.plugins.android.generation2 :android-maven-plugin:3. 8.2:consume-aar

android - 在 Canvas 上绘制位图/图像,用户在屏幕上触摸

java - 在透明 SurfaceView 上绘制