Java Android,方向改变后焦点从一个视图转移到另一个视图

Java Android,方向改变后焦点从一个视图转移到另一个视图,java,android,focus,onrestoreinstancestate,android-compound-view,Java,Android,Focus,Onrestoreinstancestate,Android Compound View,我创建了一个自定义复合视图,类似于 <merge xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:id="@+id/label" /> <EditText android:id="@+id/edittext" /> </merge> 当然,这是一个简化版本 我已经设法在绑定到视图的java类中保存和恢复视图实例状态,但是

我创建了一个自定义复合视图,类似于

<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView android:id="@+id/label" />
    <EditText android:id="@+id/edittext" />
</merge>

当然,这是一个简化版本

我已经设法在绑定到视图的java类中保存和恢复视图实例状态,但是我重写了

@Override
protected void dispatchSaveInstanceState(SparseArray<Parcelable> container) {
    dispatchFreezeSelfOnly(container);
}

@Override
protected void dispatchRestoreInstanceState(SparseArray<Parcelable> container) {
    dispatchThawSelfOnly(container);
}
@覆盖
受保护的void dispatchSaveInstanceState(SparseArray容器){
发货单(集装箱);
}
@凌驾
受保护的无效dispatchRestoreInstanceState(SparseArray容器){
仅发货(集装箱);
}
这将防止将保存/还原实例状态调用分派到子视图(
TextView
EditText

现在我有了一个片段,其中包含两个自定义视图,具有不同的ID;当发生方向更改时,焦点总是在片段重新创建后转到第一个
EditText
。我不明白为什么

例如,我们使用id1和id2调用属于自定义视图的edittext1和edittext2,如下所示: edittext2具有焦点->发生方向更改->在两个视图上调用OnSaveInstanceState->edittext2 onChangeFocus调用(从true到false)->在两个视图上调用OnRestoreInstanceState->edittext1 onFocusChange调用(从false到true)

我不想这样,我错过了什么