这可能只是不好的做法,但是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?)而不必设置布局参数。不应该以自定义视图的方式发生这种情况吗?
答案 0 :(得分:1)
尝试以下方法:
View.inflate(this, R.layout.primary_button, parentView);
我想有一个稍后调用的添加视图方法。通过保留并删除它来尝试。