我正在尝试创建我的第一个库,它将提供自定义视图PDF
。我已将其定义为可设置如下:
<declare-styleable name="PDF">
<attr name="background" format="integer"/>
<attr name="contentDescription" format="string"/>
</declare-styleable>
该类的定义如下:
public class PDF extends View {
private int mBackgroundRes;
public PDF(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
TypedArray a = context.getTheme().obtainStyledAttributes(
attrs,
R.styleable.PDF,
0,
0);
try{
mBackgroundRes = a.getInteger(R.styleable.PDF_background, R.drawable.pdf);
setBackgroundResource(mBackgroundRes);
} finally {
a.recycle();
}
}
}
我有一个片段类,应该在这个新视图中显示。第一个问题是,即使我提供了完全限定的名称,我的应用程序布局也无法识别该视图。第二个问题是我不知道如何在自定义视图中夸大我的片段。我是否必须创建另一个布局并在我的自定义视图标记内添加片段,然后对该布局进行充气?我应该覆盖View类的哪些方法?
有关完整代码,请参阅项目Github page。