我创建了一个新的自定义视图,旨在替换 linearLayout 的权重机制。我添加了一些可以直接在布局 xml 文件中使用的样式属性。
attrs.xml 文件包含:
<resources>
<declare-styleable name="WeightedLayout_LayoutParams">
<attr name="horizontalWeights" format="string" />
<attr name="verticalWeights" format="string" />
</declare-styleable>
</resources>
可以在此处查看示例和完整代码。我面临的问题是,在可视化编辑器中,我不断收到一个空指针异常,我从 typedArray 获取字符串:
final TypedArray arr=context.obtainStyledAttributes(attrs,R.styleable.WeightedLayout_LayoutParams);
//...
final String horizontalWeights=arr.getString(R.styleable.WeightedLayout_LayoutParams_horizontalWeights);
奇怪的是,如果我运行该应用程序,它运行良好(除了我在原始线程中报告的奇怪错误)。我试图修改制作 flowLayout 的 RomainGuy 的代码,并且我注意到那里也发生了相同的行为。
谁能告诉我我该怎么做?怎么行不通?