安卓按键设置焦点

目录

前言

1.在XML中设置焦点属性

2.在代码中设置焦点


前言

在开发过程中会遇到为手机或电视设置按键可操作或者触屏可操作的需求。


1.在XML中设置焦点属性

<!-- View中控件先后获取焦点的属性 -->

android:descendantFocusability="beforeDescendants"
1. beforeDescendants:viewgroup会优先其子类控件而获取到焦点
2. afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才能获取焦点
3. blockDescendants:viewGroup直接覆盖子类控件从而获取焦点

<!-- 设置可获取焦点 -->
android:focusable="true"

<!-- 设置可触摸 -->
android:focusableInTouchMode="true"

<!-- 设置可点击上下View可切换焦点 -->
android:touchscreenBlocksFocus="false"

<!-- 设置点击不穿透 -->
android:clickable="true"

<!-- 指定下一个获取焦点的控件 -->
android:nextFocusDown="@id/favorite"


2.在代码中设置焦点

//指定控件获取焦点
mScreenshotLayout.requestFocus();
mScreenshotLayout.setNextFocusUpId(mScreenshotPreview.getId());
mScreenshotLayout.setNextFocusDownId(mScreenshotPreview.getId());
mScreenshotLayout.setNextFocusLeftId(mScreenshotPreview.getId());
mScreenshotLayout.setNextFocusRightId(mScreenshotPreview.getId());

//设置可获取焦点的属性(设置默认焦点)
mDrawerLayout.setFocusable(false); 
mDrawerListView.setClickable(true);
mDrawerListView.setFocusable(true);
mDrawerListView.requestFocus();
mDrawerListView.setFocusableInTouchMode(true);

//设置listview的item可以顺畅获取焦点
mTrackList.setItemsCanFocus(true);

//设置下一个控件可获取焦点
mNextButton.setNextFocusUpId(mAlbumIcon.getId());

//设置延迟获取焦点
mSetViewFocusHandler.sendEmptyMessageDelayed(1,200);//进行延迟聚焦

有需要的朋友可以参考学习一下,有不足的地方欢迎补充 !!!

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值