एंड्रॉइड में दृश्य के कुछ वर्गों को उनके कंटेनर को अलग होने पर उनकी स्थिति को सहेजना चाहिए। Fragment.onViewCreated() View.onSaveInstanceState से पहले बुलाया जाना चाहिए()। तो यदि आप Fragment.onViewCreated() विधि में कोई मान निर्धारित करते हैं। विधि View.onRestoreInstanceState (पार्ससेल योग्य स्थिति) में मान को साफ़ किया जाना चाहिए।
उदाहरण के लिए, वर्ग TextView, RecyclerView लिए
और इतने on.You TextView.java का कोड पढ़ सकते हैं:
public Parcelable onSaveInstanceState() {
Parcelable superState = super.onSaveInstanceState();
// Save state if we are forced to
final boolean freezesText = getFreezesText();
boolean hasSelection = false;
int start = -1;
int end = -1;
....
if (freezesText || hasSelection) {
SavedState ss = new SavedState(superState);
....
}
....
}
राज्य को बचाने के लिए है कि क्या नियंत्रित करने के लिए पैरामीटर के लिए कर रहे हैं: "freezesText" और "hasSelection "। TextView का चयन नहीं किया जा सकता है ताकि hasSelection गलत है। फ़ंक्शन, getFreezesText(), क्लास टेक्स्ट व्यू में भी झूठी वापसी करें। तो, टेक्स्ट व्यू राज्य को सहेज नहीं पाएगा। एडिटटेक्स्ट का कोड।जावा:
@Override
public boolean getFreezesText() {
return true;
}
एडिटटेक्स्ट सत्य वापस लौटें, इसलिए EditText को राज्य को सहेजना चाहिए।
1.implement EditText.getFreezesText() और झूठे लौटने के लिए, और EditText
में चुनिंदा के राज्य स्पष्ट EditText की
2.implement onSaveInstanceState:
इस बग को ठीक करने के लिए कुछ विधि
, इस null.like वापसी:
public Parcelable onSaveInstanceState() {
super.onSaveInstanceState();
return null;
}
3.use EditText.setSaveEnable (झूठा) का उपयोग करें; एक्सएमएल में
4.Add परम "saveEnable = 'असत्य'"
टुकड़े एपीआई स्तर 11 या अधिक से अधिक –
@AndroidApple मुझे लगता है कि आवश्यकता होती है इसके -_- वह अनुकूलता पुस्तकालय उपयोग कर रहा है संभालने के लिए इतना सुरक्षित hes lmao – Andy
ऐसा करने में गलत नहीं है हां मैं संगतता पुस्तकालय का उपयोग कर रहा हूं। –