自定义视图中如何管理焦点

4

我正在实现一个自定义的View,我希望管理焦点,以便在其处于聚焦状态时,以不同于普通状态的方式进行绘制。 我知道我可能需要覆盖onFocusChanged方法,但是当视图应该失去焦点时,例如在外部点击时,如何调用该方法呢? 我已经在文档中搜索过了,但没有找到。

1个回答

1

每次视图的焦点发生变化时,都会调用onFocusChanged方法。因此,如果用户在您的视图之外点击,您将收到一个onFocusChanged的调用。

第一个参数显示你是否获得了焦点或失去了它。

protected void onFocusChanged(boolean gainFocus, int direction, Rect previouslyFocusedRect) {}

我已经尝试重写那个方法,但它从未被调用,所以我猜问题在于获取焦点。我该怎么做?我尝试将focusableInTouchMode设置为true,但没有任何作用。 - Alessandro Roaro
尝试手动设置监听器,比如使用这个setOnClickListener(new OnClickListener ....)。 - Carlos EduardoL

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接