我想制作一个带有清除按钮的 EditText 复合控件。由于主要功能将是 EditText 功能,我希望它可以在具有 EditText 的所有属性的布局 xml 中声明。但是,它实际上将是一个带有 EditText 和 ImageButton 的 LinearLayout。
另外,我希望它像代码中的 EditText 一样使用,所以我可以将它作为替代品放入。
到目前为止,我有这个布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="@android:drawable/editbox_background" >
<EditText
android:id="@+id/editText"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:background="#FFF" />
<ImageButton
android:id="@+id/clear"
android:src="@drawable/clear_text"
android:background="#FFF"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical" />
</LinearLayout>
但我不确定如何进行。如果我需要它是 LinearLayout 以使用此布局,如何定义扩展 EditText 的控件?还是我唯一的选择是在 onDraw() 中手动绘制 x 并自己处理点击?