android - 在 View 上调用 OnRequestFocus() 后,OnClickListener 未触发
问题描述
我有一个在调用 view.requestFocus() 后获得焦点的视图,但是一旦视图获得焦点,它的 onClickListener() 就不会在单击该视图时被调用。
下面是我的代码:这里 btn1 是我的观点
btn1.setFocusable(true);
btn1.requestFocus();
现在,当我的 btn1 获得焦点时,我正在单击该视图,但它什么也没做,它应该显示 btn2。我在 onViewCreated() 中实现了以下回调;
btn1.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
videoTitleView.setVisibility(GONE);
ageRatingView.setVisibility(GONE);
}
}
});
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "onClick: newSettings ");
btn2.setVisibility(View.VISIBLE);
});
我错过了什么吗?视图有焦点时如何使clickEvent执行?
解决方案
在 onFocusChange 中添加 OnClickListener。
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
videoTitleView.setVisibility(GONE);
ageRatingView.setVisibility(GONE);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "onClick: newSettings ");
btn2.setVisibility(View.VISIBLE);
});
}
推荐阅读
- javascript - 如何在 React gatsby 中调整大小和 svg 徽标?
- function - 为什么我在haskell中的乘法函数不允许我乘以浮点数?
- python - ¿ 为什么我在 django 中的 CORS 配置不起作用?
- python - 如何让我的碰撞与我平台中的平台侧面一起工作?
- php - 如何将字符串转换为时区感知日期
- python - 如何让机器人在 discord.py 中使用命令离开公会?
- android - 即使基于 DiffUtil 没有差异,RecyclerView 视图也会更新?
- python - 输入数据不能是列表 XGBoost
- r - 在 R 中使用聚合创建数据框
- c++ - 除以 0 是编译器错误或运行时错误