首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在填充(或触摸) EditText后才显示我的DrawableRight图像?

在填充或触摸EditText后才显示DrawableRight图像,可以通过以下步骤实现:

  1. 创建一个自定义EditText控件,并在布局文件中使用该控件。
  2. 在自定义EditText控件的构造函数中,设置一个OnTouchListener监听器。
  3. 在OnTouchListener的onTouch方法中,判断触摸事件的类型,如果是ACTION_UP(手指抬起)事件,则显示DrawableRight图像。
  4. 在布局文件中,为自定义EditText控件设置DrawableRight属性,即要显示的图像。

下面是一个示例代码:

代码语言:txt
复制
public class CustomEditText extends EditText implements View.OnTouchListener {
    private Drawable drawableRight;
    
    public CustomEditText(Context context) {
        super(context);
        init();
    }
    
    public CustomEditText(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }
    
    public CustomEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }
    
    private void init() {
        // 获取DrawableRight图像
        drawableRight = getCompoundDrawables()[2];
        
        // 设置触摸监听器
        setOnTouchListener(this);
    }
    
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_UP) {
            // 判断触摸位置是否在DrawableRight图像内
            if (event.getRawX() >= (getRight() - drawableRight.getBounds().width())) {
                // 显示DrawableRight图像
                // 可以在这里执行一些操作,比如清空EditText内容
                setCompoundDrawables(null, null, drawableRight, null);
                return true;
            }
        }
        return false;
    }
}

在布局文件中使用CustomEditText控件:

代码语言:txt
复制
<com.example.CustomEditText
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:drawableRight="@drawable/your_drawable"
    android:hint="Enter text" />

这样,在填充或触摸CustomEditText后,DrawableRight图像就会显示出来。

注意:上述示例代码中的CustomEditText是一个自定义的EditText控件,你可以根据自己的需求进行修改和扩展。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

领券