मैं अपने तत्व नहीं प्राप्त कर सकता, उदाहरण के लिए ListView
, ठीक से आकार बदलने के लिए।साइज चेंज में आकार और लेआउट कैसे सेट करें?
मुझे एक डैशबोर्ड, एक संपादन बॉक्स और एक सूचीदृश्य के साथ खोज के लिए ListActivity
मिला। यह विचार है कि कुंजीपटल दिखाए जाने पर एक्शनबार को छिपाना है।
मैं LinearLayout
बढ़ाया, आकार परिवर्तन देखने के लिए सुनने के लिए (अनुशंसित here के रूप में):
public class SizeChangingLinearLayout extends LinearLayout {
//...
@Override
protected void onSizeChanged(int xNew, int yNew, int xOld, int yOld)
{
View actionbar = mainView.findViewById(R.id.actionbar);
if (yNew > yOld)
actionbar.setVisibility(View.VISIBLE);
else if (yNew < yOld)
actionbar.setVisibility(View.GONE);
super.onSizeChanged(xNew, yNew, xOld, yOld);
}
}
छुपा/ActionBar के प्रदर्शन से काम करता है के रूप में उम्मीद लेकिन उनमें एक ही ऊंचाई की ListView
नीचे के रूप में एक अंतर है छुपा एक्शनबार। जैसे ही कोई ग्राफिक्स बदलता है (उदा। संपादन बॉक्स में लिखना) ListView
अंतर भरता है। कुंजीपटल छुपाते समय, एक समान व्यवहार विपरीत में दिखाई देता है।
[संपादित करें]
एक ही समस्या भी अन्य लेआउट बदलने में दिखाई देता है। onSizeChanged
में Visibility
बदलना सीधे दिखाता है, लेकिन आकार और मार्जिन बदलना तब तक प्रदर्शित नहीं होता जब तक कि कुछ अन्य उपयोगकर्ता कार्रवाई उन विचारों को दोबारा नहीं हटाती। अमान्यता onSizeChanged
से काम नहीं करती है।
[/ संपादित करें]
मैं द्वारा ग्राफिक्स ताज़ा करने के लिए प्रयास किया है: आईएनजी दोनों कस्टम LinearLayout और
invalidate
ListView
(here सिफारिश के रूप में)- पर
notifyDataSetChanged
सूची का एडाप्टर forceLayout
... और अधिक सफलता के बिना। ListView
पहले आकार क्यों नहीं बदल रहा है? क्या मुझे अपने विस्तारित लीनियरआउट में onLayout
ओवरराइड करना है? मुझे क्या याद आया?
नहीं किसी भी अद्यतन काम करता है, मैंने देखा है। "जैसे ही कोई ग्राफिक्स बदलता है", मैंने लिखा। लेकिन उदाहरण के लिए एक पॉपअप बदलावों को दिखाएगा नहीं। मुझे लगता है कि सही तत्वों को अमान्य किया जाना है, लेकिन वे नहीं करते हैं। – JOG
समस्या सभी लेआउट परिवर्तनों के लिए भी प्रकट होती है, उदाहरण के लिए EditText के मार्जिन बदलना। लेकिन _adding_ लेआउट तत्व, उदाहरण के लिए बॉक्स के दाईं ओर एक बटन, हालांकि तुरंत दिखाता है। – JOG