1
뷰에 포커스를두고 있지만 방향을 변경하면 포커스가 손실됩니다. onConfigurationChanged()가 포커스를 처리합니까? 또는 명시 적으로 설정해야하며 그렇다면 포커스를 어떻게 설정할 수 있습니까? 현재 초점보기를 추적해야합니다. 어떻게해야합니까?현재 포커스가있는 뷰를 확인하는 방법
뷰에 포커스를두고 있지만 방향을 변경하면 포커스가 손실됩니다. onConfigurationChanged()가 포커스를 처리합니까? 또는 명시 적으로 설정해야하며 그렇다면 포커스를 어떻게 설정할 수 있습니까? 현재 초점보기를 추적해야합니다. 어떻게해야합니까?현재 포커스가있는 뷰를 확인하는 방법
활동의 onSaveInstanceState 및 onRestoreInstanceState 메소드를 대체하십시오. 그런 다음 뷰의 ID를 가져 와서 onSaveInstanceState 메소드의 번들에 저장하여 포커스가있는 뷰를 추적 할 수 있습니다. 그런 다음 onRestoreInstanceState 메서드에서 ID를 잡고 해당 ID로 뷰를 찾습니다. 당신은 그것을 던지거나 아무것도 할 필요조차 없습니다. 그런 다음 해당 뷰에 대한 포커스 만 요청하면됩니다. 그러면 다음과 같이 표시됩니다.
@Override
protected void onSaveInstanceState(Bundle outState) {
int viewId = this.getCurrentFocus().getId();
outState.putInt("hasFocus", viewId);
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
int viewId = savedInstanceState.getInt("hasFocus");
View view = findViewById(viewId);
view.requestFocus();
}