2017-04-27 10 views
6

के अंदर स्क्रॉलव्यू लेआउट का उपयोग नहीं कर सकता मैंने इस लाइब्रेरी को मेरे कोड में उपयोग किया। असल में मेरे पास स्लाइडिंगअप पैनल लेआउट पर एक स्क्रॉलव्यू है। कोड के रूप में नीचे है:SlidingVPanelLayout Xamarin एंड्रॉइड

<cheesebaron.slidinguppanel.SlidingUpPanelLayout 
       android:id="@+id/sliding_layout" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="bottom"> 
       <android.support.v4.view.ViewPager 
        android:id="@+id/HomeFrameLayout" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" /> 
       <ScrollView 
        android:id="@+id/slidingPanelScrollView" 
        android:layout_height="match_parent" 
        android:layout_width="match_parent" 
        android:background="@android:color/transparent" 
        android:clickable="true" 
        android:focusable="false"> 
        <RelativeLayout 
         android:layout_height="match_parent" 
         android:layout_width="match_parent"> 
         <RelativeLayout 
          android:id="@+id/cardHolderRelativeLayout" 
          android:layout_height="match_parent" 
          android:layout_width="380dp" 
          android:background="@android:color/transparent" 
          android:layout_centerHorizontal="true" 
          android:padding="10dp"> 
          <LinearLayout 
           android:id="@+id/linearLayout1" 
           android:layout_height="250dp" 
           android:layout_width="match_parent" 
           android:background="#FF0000" 
           android:layout_marginBottom="15dp" /> 
          <LinearLayout 
           android:id="@+id/linearLayout2" 
           android:layout_height="250dp" 
           android:layout_width="match_parent" 
           android:background="#00FF00" 
           android:layout_marginBottom="15dp" 
           android:layout_below="@id/linearLayout1" /> 
          <LinearLayout 
           android:id="@+id/linearLayout3" 
           android:layout_height="250dp" 
           android:layout_width="match_parent" 
           android:background="#0000FF" 
           android:layout_marginBottom="15dp" 
           android:layout_below="@id/linearLayout2" /> 
          <LinearLayout 
           android:id="@+id/linearLayout4" 
           android:layout_height="250dp" 
           android:layout_width="match_parent" 
           android:background="#0000FF" 
           android:layout_marginBottom="15dp" 
           android:layout_below="@id/linearLayout2" /> 
         </RelativeLayout> 
        </RelativeLayout> 
       </ScrollView> 
      </cheesebaron.slidinguppanel.SlidingUpPanelLayout> 

क्या मैं हासिल करना चाहते हैं कि, अगर SlidingUpPanelLayout विस्तार किया है, तो उपयोगकर्ता scrollview स्क्रॉल करने के लिए सक्षम होना चाहिए है। यदि स्क्रॉलव्यू अपने शीर्ष पर स्क्रॉल किया गया है (उपयोगकर्ता अपने फोन पर स्क्रॉल करें) और उपयोगकर्ता स्क्रॉलिंग को नीचे रखता है, तो SlidingUpPanelLayout ध्वस्त हो जाना चाहिए।

मैं निम्न कोड लागू:

_slidingUpPanelLayout.NestedScrollingEnabled = true

 _scrollView.ViewTreeObserver.ScrollChanged += (sender, e) => 
     { 
      var y = _scrollView.ScrollY; 
      if (y < -20) 
      { 
       _slidingUpPanelLayout.SlidingEnabled = true; 
      } 

     }; 

     _slidingUpPanelLayout.PanelExpanded += (sender, args) => 
     { 
      RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent); 
      _cardHolderRelativeLayout.LayoutParameters = layoutParams; 

      _slidingUpPanelLayout.SlidingEnabled = false; 
     }; 

मूल रूप से मैं स्क्रॉल ईवेंट श्रोता बदलने के लिए स्लाइडिंग को सही/गलत करने के लिए सेट करता हूं।

हालांकि, स्क्रॉलव्यू के साथ कोई समस्या है। यह केवल तभी ट्रिगर होता है जब स्क्रॉलव्यू स्क्रॉल हो जाता है और फिर नीचे स्क्रॉल किया जाता है।

वैसे भी, मुझे नहीं लगता कि मेरा दृष्टिकोण एक अच्छा दृष्टिकोण है। कोई उपाय? साथ ही, जब मैं एंड्रॉइड मूल पर एंड्रॉइडस्लाइडिंगपैनल लाइब्रेरी को देखता हूं, ऐसा लगता है कि यह पहले से ही स्लाइडिंगअप पैनेललआउट आउट-ऑफ-बॉक्स के अंदर स्क्रॉलव्यू का समर्थन करता है। यकीन नहीं है कि मैं सही हूँ या नहीं।

मुझे यह भी सुनिश्चित नहीं है कि स्लाइडिंगअप पैनल के लिए NestedScrollingEnabled = true के साथ कुछ भी करने के लिए कुछ भी है या नहीं, लेकिन मैंने स्टैक ओवरफ्लो पर काफी कुछ सिफारिशें देखीं।

चीयर्स,

उत्तर

-1

scrollview

NestedScrollView scrollView = (NestedScrollView) findViewById (R.id.scrollView); 
scrollView.setFillViewport (true); 
+0

यह काम नहीं करता है के बजाय nestedScrollview का उपयोग करने का प्रयास करें। मैंने इसे पहले से ही कोशिश की। कृपया इस तरह एक यादृच्छिक सिद्धांत कोड प्रदान करने के बजाय मेरे कोड पर एक नज़र डालें। मैंने पहले पूछने से पहले कुछ तरीकों की कोशिश की है। –