本篇博客是文章的继续。
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>