本篇博客是文章的继续。
3. LayoutParams
①:此代码知识点较多,另一篇博客会专门记录。
//Margin是子view相对父控件四条边的距离
@Override
public ViewGroup.MarginLayoutParams generateLayoutParams(AttributeSet attrs){
return new MarginLayoutParams(getContext(), attrs);
}
三、注意事项
1. 如果需要从XML文件中inflate控件,必须写出控件以下全部构造方法。否则会报java.lang.classnotfoundexception。
//构造方法
public CricleMenu(Context context) {
super(context);
}
public CricleMenu(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CricleMenu(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
<com.example.custom_view_test.CricleMenu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#AA333333">
</com.example.custom_view_test.CricleMenu>