2つのRadioButton、ID(@+id/radioButton1
および@+id/radioButton2
)を持つ1つのRadioGroupを持つカスタムコンポーネントがあります。一方、5つのタブを持つTabActivityがあります。各タブでは、このコンポーネントは複数回使用されます。復元時に同じIDを取得した同じIDを持つビュー
オリエンテーションが変更されてアクティビティが再作成されると、RadioButtonに同じattrsがロードされるという問題があります。これにはandroid:text
,android:margin
、さらには作成したスタイル付きattrsが含まれます。また、同じIDを持つすべてのCheckBoxで発生します。
なぜこれが起こったのかを調べるために、アンドロイドがonRestoreInstanceStateでこれを行っていると判断しました。スーパーメソッドを呼び出す行にコメントを付けるとうまく動作します。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// super.onRestoreInstanceState(savedInstanceState);
}
これはどのようになっていますか?または、これを引き起こすために何ができますか?
カスタムビューを作成すると、同じIDを持つ同じビューで同じレイアウトが展開されるため、通常の動作ではないと推測しています。したがって、毎回子のために異なるIDを生成する新しいカスタムビューをインスタンス化することはできません。上記のコードまたはandroid:configChanges
をマニフェストで使用すると、私にとってはうまくいきません。だから、どんな助けもありがとう。
私もこれを経験してきました。実際には、私がダウンしてこのバグを追跡しようとする日のカップルを費やしてきた。最悪の部分は、私の場合には、これらのビューは不正な値を受け取り、あります この動作は、SeekBarを他のものとグループ化するカスタムビューに埋め込まれているSeekBarで表示されています私はカスタムビューをアクティビティのさまざまな場所で再利用しますが、もちろんXMLファイルを再利用できることが望ましいです –