Android中,很多界面都存在焦点问题,即在一些界面会出现焦点丢失现象.
之前学到了一个方法可以定位当前焦点.
import android.os.SystemProperties;
Boolean focusFlag = SystemProperties.getBoolean("sys.debug.findFocus", true);
// 上述为焦点定位线城开关,需导包
Runnable runnable = new Runnable() {
@Override
public void run() {
while (focusFlag) {
try {
Thread.sleep(300); // 每3S获取一次焦点
View focusView = MainActivity.this.getWindow().getDecorView().findFocus();
Log.e(TAG, "The current focus is on" + focusView.toString());
} catch (Exception e) {
Log.e(TAG, "run: " + e.getMessage());
}
}
}
};
new Thread(runnable).start(); // 设在第一次需要开启的地方即可
看到有朋友看了这篇 遂将后续代码完善一下 .
其实开关都可以用 SystemProperties 去实现,不过为了运行起来流畅不建议过多使用.