将边距设置为“独立”视图

时间:2015-04-29 12:52:33

标签: android android-layout margins

这可能只是不好的做法,但是android gui一如既往地让我感到沮丧。我在res / layout下有一个名为primary_button的独立视图:

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:background="@drawable/primary_button"
    android:textColor="@color/light_warm_gray"/>

及其在res / drawable下的自定义背景“primary_button”形状:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
   android:shape="rectangle">
   <solid android:color="@color/light_olive" />
   <corners android:radius="10dp"/>
   <size android:height="40dp" android:width="40dp" />
</shape>

现在的问题是,当我将layout_margin设置为10dp时,没有设置任何东西,因为在那时我使用该行进行充气:

Button b = (Button)View.inflate(this, R.layout.primary_button, null);

它没有布局父级(显然需要设置布局参数)。我想要整洁的代码,并且始终在代码中设置* Layout.LayoutParams是一种痛苦。

形状填充和按钮填充,没有做我想要的,但他们打算做什么。 (在这种情况下,他们只是放大了按钮形状)

我想到的另一种方法是围绕它设置零-α中风,但这是一个可怕的解决方案。

我想知道股票按钮如何处理这个问题。我的意思是他们只是在它们之间留下一个很好的边距(大约15dp?)而不必设置布局参数。不应该以自定义视图的方式发生这种情况吗?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

View.inflate(this, R.layout.primary_button, parentView);

我想有一个稍后调用的添加视图方法。通过保留并删除它来尝试。