从根元素访问自定义XML属性

时间:2014-10-17 21:15:21

标签: java android xml

我扩展了ViewGroup并在Android中创建了一个自定义Layout类。我还定义了一些自定义XML属性来帮助定位子视图。我需要在根XML元素(自定义布局)上访问几个自定义xml属性(自定义:view_height和custom:view_width),但是当我尝试从Layout java类访问它们时,TypedArray为null,就像它一样看不到他们。他们在儿童观点上工作得很好。有关如何从根目录中访问自定义XML属性的任何想法?谢谢!

参见代码:

<?xml version="1.0" encoding="utf-8"?>
<package.of.my.CustomLayout xmlns:android="http://schemas.android.com/apk/res/android"
                                        xmlns:custom="http://schemas.android.com/apk/res-auto"
                                        android:layout_height="match_parent" android:layout_width="match_parent"
                                        android:orientation="vertical"
                                        android:background="@drawable/homecell_selector"
                                        custom:view_width="400"   // I need this!!
                                        custom:view_height="200"  // I need this!!
                                        >

<Button android:id="@+id/postText" android:layout_marginLeft="20dp"
                                      android:layout_marginTop="45dp" android:layout_height="wrap_content"
                                      android:layout_width="wrap_content" android:alpha="1"
                                      android:background="@color/HEX_FFFFFFFF" android:textColor="@color/HEX_000"
                                      android:textSize="15sp" android:visibility="visible" android:gravity="left"
                                      custom:view_width="0.87610022270753" 
                                      custom:eHeight="true"
                                      custom:view_height="0.44296926842493" 
                                      custom:eWidth="true"
                                      custom:originX="RIGHT" 
                                      custom:x="0.061399777292469"
                                      custom:eX="true" 
                                      custom:originY="BOTTOM"
                                      custom:y="0.1682145166653" 
                                      custom:eY="true"/>

<Button android:id="@+id/firstNameLastNameShortText" android:layout_marginLeft="21dp"
                                      android:layout_marginTop="8dp" android:layout_height="18dp"
                                      android:layout_width="276dp" android:alpha="1"
                                      android:background="@color/HEX_2087fc" android:textColor="@color/HEX_000"
                                      android:textSize="15sp" android:visibility="visible" android:gravity="left"
                                      custom:view_width="0.86433765030597" 
                                      custom:eHeight="true"
                                      custom:view_height="0.15716154473749" 
                                      custom:eWidth="true"
                                      custom:originX="LEFT" 
                                      custom:x="0.065625" custom:eX="true"
                                      custom:originY="TOP" 
                                      custom:y="0.069849575438883"
                                      custom:eY="true"/>
</package.of.my.CustomLayout>

1 个答案:

答案 0 :(得分:1)

其实你并不需要那些。因为你需要一个宽度和一个高度。无论你想要添加到自定义视图的宽度和高度,你都应该将它们直接添加到android:layout_width和android:layout_height标签。