这次是以两个TextView举例 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="60dp"> <TextView android:id="@+id/text1" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent" /> <TextView android:id="@+id/text2" android:layout_weight="1" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> 在values的文件下新创建一个attrs文件<?xml version="1.0" encoding="utf-8"?> <resources> <declare-styleable name="ButtonLayout"> <attr name="text1" format="string"/> <attr name="text2" format="string"/> </declare-styleable> </resources> 然后新建一个类,继承与LinearLayoutpublic class ButtonLayout extends LinearLayout { private TextView text1; private TextView text2; private String text11; private String text22; private TypedArray a; public ButtonLayout(Context context, @Nullable AttributeSet attrs) { super(context, attrs); View view = LayoutInflater.from(context).inflate(R.layout.button_item, null); addView(view); text1 = (TextView) findViewById(R.id.text1); text2 = (TextView) findViewById(R.id.text2); TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.ButtonLayout); text11 = a.getString(R.styleable.ButtonLayout_text1); text1.setText(text11); } } 在activity布局文件中用自定义的控件<com.example.administrator.testdemo03.ButtonLayout android:id="@+id/buttonlayout" android:layout_width="match_parent" android:layout_height="50dp" buttonview:text1="12334213" />buttonview需要引用到包路径下xmlns:buttonview="http://schemas.android.com/apk/res-auto"
自定义组合控件
最新推荐文章于 2024-07-11 15:08:02 发布