Android:覆盖相对论

Android:覆盖相对论,android,android-relativelayout,Android,Android Relativelayout,我的RelativeLayout有一些填充,但对于某个表面视图,我希望它没有填充。我将padding设置为0dp,但它仍然遵循RelativeLayout。如何覆盖它?我希望您为RelativeLayout而不是SurfaceView设置了填充 您可以使用以下代码获取RelativeLayout实例并在运行时设置填充: RelativeLayout element = MainLayout.findViewById(id); if (element!= null) eleme

我的RelativeLayout有一些填充,但对于某个表面视图,我希望它没有填充。我将padding设置为0dp,但它仍然遵循RelativeLayout。如何覆盖它?

我希望您为RelativeLayout而不是SurfaceView设置了填充

您可以使用以下代码获取RelativeLayout实例并在运行时设置填充:

RelativeLayout element = MainLayout.findViewById(id);

   if (element!= null)
      element.setPadding(0.0.0.0);
其他方法:


您可以创建自己的小部件并在布局文件中使用它们

package com.android.xxx
public class MyRelativeLayout extends RelativeLayout {

}
在布局文件中,使用MyRelativeLayout;与使用RelativeLayout的方式相同


但仅仅为了覆盖填充,我不建议您创建自己的小部件。我上面提到的解决方案应该是更好的方法。

如果根布局设置了填充,那么即使您将0dp填充设置到子视图,也会由于根布局而具有填充。使用嵌套布局并将填充指定给所需的布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                          android:orientation="horizontal"
                          android:layout_width="fill_parent"
                          android:layout_height="wrap_content">

<RelativeLayout><surfaceview></surfaceview></RelativeLayout>  //add padding here if you want

<RelativeLayout><Button></Button></RelativeLayout>  //do not add padding here if you do not want
</RelativeLayout>

//如果需要,请在此处添加填充
//如果不需要,请不要在此处添加填充

你能解释一下吗more@anddevmanu我有一个RelativeLayout,它有padding,所以每个元素都有padding。但是,假设我想要一个没有填充的按钮。我试着将android:paddingLeft设置为0dp,但它仍然在视觉上以padding结束,所以我认为它仍然遵循RelativeLayout。我希望该按钮的布局与RelativeLayout不同。看来您的解决方案是通过编程更改RelativeLayout。我希望一些元素有自己的布局,不同于RelativeLayout。您可以创建自己的小部件并在布局文件中使用它们。package com.android.xxx公共类MyRelativeLayout扩展了RelativeLayout{}在布局文件中,使用MyRelativeLayout;与使用RelativeLayout的方式相同。但仅仅为了覆盖填充,我不建议您创建自己的小部件。在我上面,解决方案应该是更好的方法。