時相同的ID得到同樣的attrs我對此有兩個單選按鈕,IDS @+id/radioButton1
和@+id/radioButton2
一個RadioGroup中的自定義組件。另一方面,有一個帶有五個選項卡的TabActivity。在每個選項卡上,此組件多次使用。瀏覽與恢復
這裏的問題,當方向的變化和活性重建,所有的單選按鈕被加載相同的attrs,這包括android:text
,android:margin
甚至認爲我創建了風格ATTRS。它也發生在所有具有相同ID的CheckBox上。
我花了一些時間試圖發現爲什麼會發生這種情況,並得出結論,android正在onRestoreInstanceState中這樣做。如果我評論調用超級方法的行,它可以正常工作。
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
// super.onRestoreInstanceState(savedInstanceState);
}
這是它應該如何?或者有什麼可以導致這種情況?
我猜,這是因爲在創建自定義視圖時,膨脹與具有相同ID的相同意見相同的佈局不是一種正常的行爲。所以不可能每次都實例化一個新的自定義視圖來爲其子節點生成不同的ID。對清單使用上面的代碼或android:configChanges
似乎對我來說是一個糟糕的解決方法。所以,任何幫助表示讚賞。
我已經經歷了這一點。事實上,我已經花了幾天試圖跟蹤下來這個錯誤的。最糟糕的是,在我的情況下,這些觀點得到一個壞值並立即觸發視圖所代表的事物的狀態變化,這意味着我正在破壞狀態 我在一個SeekBar中看到了這種行爲,這個行爲嵌入了一個自定義視圖中,該視圖將SeekBar與其他我重複使用自定義視圖在Activity中的各個位置,當然能夠重用XML文件是首選。 –