6

मेरे पास एक सूची दृश्य के साथ एक गतिविधि है, जहां क्लिक किए जाने पर प्रत्येक आइटम का विस्तार किया जा सकता है, नक्शा व्यू दिखा रहा है। यदि कोई अन्य आइटम क्लिक किया गया है, तो खुली वस्तु बंद है। गतिविधि MapActivity फैली हुई है, और वहाँ MapView उसमें केवल एक ही है, जो मैं हटाने और आइटम इस तरह की जरूरत के रूप में करने के लिए जोड़ है:सूची में मानचित्र दृश्य देखें

private MapView getMapView() { 
    if (mMapView == null) { 
     LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     mMapView = (MapView) inflater.inflate(R.layout.club_map,null); 
    } 
    else 
    { 
     ((ViewGroup) mMapView.getParent()).removeView(mMapView); 
    } 
    return mMapView; 
} 

private void attachMap(View targetView,String siteID) { 
    if (openInPrgrs) { 
     return; 
    } 
    RelativeLayout relView = (RelativeLayout) targetView.findViewById(R.id.clubDetailsLayout); 
    LinearLayout mapContainer = (LinearLayout) relView.findViewById(R.id.mapContainer); 
    UtilFunctions.logIfDebug("MembershipsList","Attaching Map. siteID " + siteID + " childCount = " + mapContainer.getChildCount()); 
    if (mapContainer.getChildCount() > 0) { 
     return; 
    } 
    MapView mapView = getMapView(); 
    mapContainer.addView(mapView); 
} 

यह ठीक समय के सबसे अधिक काम करता है, लेकिन जब स्क्रीन बंद हो जाती है और वापस चालू करें, या खुली वस्तु स्क्रीन और पीछे स्क्रॉल हो गई है, नक्शा दृश्य गायब हो जाता है। मुझे पता है यह इसलिए है क्योंकि दृश्य सूची द्वारा दृश्य पुनर्नवीनीकरण किया जा रहा है। मैं) getView (में नक्शा संलग्न करने के लिए (यदि दृश्य खुला स्थिति में है) का प्रयास करें:

public View getView(int position, View convertView, 
       ViewGroup parent) { 

      final View resultView = super.getView(position, convertView, parent); 
      LayoutParams lp = resultView.getLayoutParams(); 
      if (curOpenPos == position) { 

       LinearLayout mapContainer = (LinearLayout) resultView.findViewById(R.id.mapContainer); 
       lp.height = item_height_open; 
       attachMap(resultView, siteID); 
      } 

} नक्शा गायब हो जाता है जब आइटम पूरी तरह से विस्तृत है, लेकिन जब स्क्रीन बंद है और उस पर चला जाता है प्रकट होता है

कोई भी जानता है कि ऐसा क्यों होता है, या मैं इसे हल करने के लिए क्या कर सकता हूं?

+0

शायद आप हमेशा अपने मानचित्र पर सिंगलटन नक्शा देखें जोड़ सकते हैं, लेकिन दृश्यता के साथ बेवकूफ। जैसे गैर-चयनित पंक्तियां दृश्यता (View.GONE), चयनित पंक्ति सेट दृश्यता (देखें। VISIBLE)। क्या यह व्यवहार बदलता है? – CSmith

+0

कृपया इस लिंक का संदर्भ लें http://stackoverflow.com/questions/2961275/android-mapview-contained-within-a-listview उम्मीद है कि यह मदद करता है –

उत्तर

1

शायद आप होल्डर वर्ग को कार्यान्वित कर सकते हैं। आपके MapView को एक उदाहरण रखने के बजाय, इसे पुनर्स्थापित किया जा सकता है।

अंतिम उदाहरण में HERE दिखाया गया है कि अन्य विचारों के साथ ऐसा कैसे किया जाए।

संबंधित मुद्दे