我正在开发一个从View
延伸的自定义RelativeLayout
,
包含两个ImageView
和一个EditText
作为子视图。
我想要一个ImageView
,EditText
就像一个View
。因此,如果用户点击其中一个,他们应该获得应该向用户显示的焦点,如下所示。 EditText的默认焦点动画应该保留,ImageView
(矢量绘图)上的可绘制图像也应该改变它的颜色。问题是,EditText
需要两次点击才能调用onClick回调。我通过将focusableInTouchMode
属性设置为false
找到了解决方案。但是,使用此解决方案,焦点会丢失。
也许我应该通过覆盖EditText
的onFocus回调并重定向到onClick方法并以此设置ImageView
的焦点来以编程方式解决此问题。但在可重用性的情况下,这似乎是不好的做法。
那么,结合这两种观点的特征是一种很好的做法吗?
答案 0 :(得分:0)
在View.onClickListener
上设置RelativeLayout
,然后在requestFocus()
上设置EditText
。
mYourRelativeLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mYourEditText.requestFocus();
}
});