我有一个自定义布局
public class PersonVIEw extends linearLayout{public PersonVIEw(Context context, AttributeSet attrs) { super(context, attrs); initUi(context);}public PersonVIEw(Context context) { super(context); initUi(context);} private voID initUi(Context context){ LayoutInflater.from(context).inflate(R.layout.person_vIEw, this, true); profilePicture = (ImageVIEw)findVIEwByID(R.ID.profile_picture); ...}
布局在xml中定义
<merge xmlns:androID="http://schemas.androID.com/apk/res/androID"> ...
然后我在其他布局中使用它
情况1
// In this case androID:layout_margin is specifIEd so it should be used<my.package.PersonVIEw androID:layout_margin="10dp" .../>
情况二
// In this case androID:layout_margin is NOT specifIEd so I want for my PersonVIEw some default value should be used (say 5pt)<my.package.PersonVIEw .../>
我的自定义布局PersonVIEw如何实现案例2?
解决方法:
类似问题已在https://stackoverflow.com/a/25982512/3554436解决
将androID:layout_margin添加到attrs.xml
<declare-styleable name="PersonVIEw"> ... <attr name="androID:layout_margin" /> ...</declare-styleable>
像其他自定义属性一样访问属性:
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.PersonVIEw);float margin = a.getDimension(R.styleable.PersonVIEw_androID_layout_margin, 0);...boolean hasmargin = a.hasValue(R.styleable.PersonVIEw_androID_layout_margin);
总结 以上是内存溢出为你收集整理的android-我的自定义视图的默认属性值(从LinearLayout继承)全部内容,希望文章能够帮你解决android-我的自定义视图的默认属性值(从LinearLayout继承)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)