2011-08-15 9 views
8

मैं इस कूज से पूछ रहा हूं कि मैं उत्सुक हूं।एंड्रॉइड टुकड़े शो ऑनहाइड/ऑनशो छुपाएं?

1) अधिकांश Google डेमो को आईडी के जरिए टुकड़े मिलते हैं यदि टुकड़ा पहले ही एक्सएमएल में बनाया गया है।

तो यदि हम उस दृष्टिकोण को लेते हैं, तो जिस तरह से हम टुकड़े दिखाते हैं, उसे छुपाकर और इसे दिखाकर ही टुकड़े पहले ही बनाए जाते हैं।

2) Google द्वारा प्रदान किए गए उदाहरण भी हैं जहां आप एक निर्माता के साथ टुकड़ा बना सकते हैं और इसे बढ़ा सकते हैं। यह अजीब कार्य करता है जैसे GetActivity() उस खंड में बुलाए जाने पर शून्य को वापस कर देता है।

तो यदि मैं पहला दृष्टिकोण लेता हूं तो मुझे टुकड़े छिपाने और दिखाने होंगे। तो Google क्यों नहीं है, जैसे कि नाइड या ऑन पर टुकड़ों को हुक प्रदान करता है ताकि हम उन कार्यों के साथ स्वयं को साफ कर सकें जो स्पष्ट रूप से कार्यान्वित करते हैं और स्पष्ट रूप से कॉल करते हैं।

+0

इस पोस्ट में कुछ प्रासंगिक जवाब है: http://stackoverflow.com/questions/10024739/how-to-determine-when-fragment-becomes-visible-in-viewpager – treesAreEverywhere

उत्तर

25

आप onHide/onShow पर सेशन हुक करना चाहते हैं, तो बस अपने टुकड़ा में

public void onHiddenChanged(boolean hidden) { 
} 

ओवरराइड।

-2

मैं यह निर्धारित करने के लिए नीचे दिए गए फ़ंक्शन को ओवरराइड करता हूं कि कोई टुकड़ा दिखाया गया है या छुपा हुआ है या नहीं।

@Override सार्वजनिक शून्य setMenuVisibility (अंतिम बूलियन दृश्यमान)

0

Overrinde setUserVisibleHint आप आसानी से यह ट्रैक कर सकते हैं।

@Override 
public void setUserVisibleHint(boolean isVisibleToUser) { 
    super.setUserVisibleHint(isVisibleToUser); 
    if(isVisibleToUser){ 
     //When fragment is visible 
    } 
    Log.i("my_fragment","setUserVisibleHint: "+isVisibleToUser); 
} 
संबंधित मुद्दे