Android: 扩展 RelativeLayout
Android: Extending RelativeLayout
我有一个 class 扩展 RelativeLayout 像这样:
class CustomLayout extends RelativeLayout {
CustomLayout(Context context) {
super(context, null, 0);
}
CustomLayout(Context context, AttributeSet attrs) {
super(context, attrs, 0);
}
CustomLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
我通过 XML 文件使用此布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.vj.myapp.CustomLayout
android:id="@+id/imageView_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#555"
android:layout_weight="1">
</com.vj.myapp.CustomLayout>
</LinearLayout>
但是应用崩溃了:
Error inflating class com.vj.myapp.CustomView
我确实提供了所需的构造函数。
怎么回事?
让他们public。构造函数必须可访问。
如果您使用 Android Studio,最简单的方法可能是按 ctrl+o 并选择要覆盖的方法。它将生成具有正确签名的存根,然后您可以根据需要修改代码。
我有一个 class 扩展 RelativeLayout 像这样:
class CustomLayout extends RelativeLayout {
CustomLayout(Context context) {
super(context, null, 0);
}
CustomLayout(Context context, AttributeSet attrs) {
super(context, attrs, 0);
}
CustomLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
}
我通过 XML 文件使用此布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.vj.myapp.CustomLayout
android:id="@+id/imageView_container"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#555"
android:layout_weight="1">
</com.vj.myapp.CustomLayout>
</LinearLayout>
但是应用崩溃了:
Error inflating class com.vj.myapp.CustomView
我确实提供了所需的构造函数。 怎么回事?
让他们public。构造函数必须可访问。
如果您使用 Android Studio,最简单的方法可能是按 ctrl+o 并选择要覆盖的方法。它将生成具有正确签名的存根,然后您可以根据需要修改代码。