2013-09-02 8 views
12

से अधिक है या नहीं, मैं कैसे जांच सकता हूं कि ScrollView स्क्रीन से अधिक है या नहीं? जब ScrollView की सामग्री स्क्रीन पर फिट होती है, तो स्क्रॉलव्यू स्क्रॉल करने योग्य नहीं होता है, जब सामग्री की स्क्रीन की ऊंचाई से अधिक सामग्री स्क्रॉल करने योग्य होती है। मैं उस संबंध में ScrollView की स्थिति कैसे देख सकता हूं?जांचें कि स्क्रॉलव्यू स्क्रीन/स्क्रोल करने योग्य

+0

एक scrollview पहले से ही जब सामग्री स्क्रीन –

+0

में फिट बैठता है इस डिफ़ॉल्ट व्यवहार –

+1

है मैं जानता हूँ कि यह सामान्य और तार्किक व्यवहार है, मैं अगर थेरेस एक विधि मौसम की जाँच करने के जानना चाहता हूँ स्क्रॉल नहीं किया जा सकता स्क्रॉलव्यू स्क्रीन फिट या excee फिट बैठता है यह डीएस – FWeigl

उत्तर

20

यह scrollview, जो निजी है से कोड है, लेकिन कक्षा में ही

/** 
* @return Returns true this ScrollView can be scrolled 
*/ 
private boolean canScroll() { 
    View child = getChildAt(0); 
    if (child != null) { 
     int childHeight = child.getHeight(); 
     return getHeight() < childHeight + mPaddingTop + mPaddingBottom; 
    } 
    return false; 
} 
5

एक स्क्रॉल व्यू में हमेशा 1 बच्चा होता है। तुम सब करने की ज़रूरत बच्चे

int scrollViewHeight = scrollView.getChildAt(0).getHeight(); 

की ऊंचाई हो और अगर दोनों बराबर हैं (या scrollview ऊंचाई अधिक है) आपका स्क्रीन

की ऊंचाई की गणना करें तो यह अपनी स्क्रीन पर फिट बैठता है।

+3

यह है कि यदि आपका स्क्रॉलव्यू पूरी स्क्रीन को कवर कर रहा है। –

+0

@ निकोलस टाइलर स्क्रीन की केवल पूरी ऊंचाई। और यदि स्क्रॉलव्यू स्क्रीन की पूरी ऊंचाई पर नहीं है तो आपको पता चलेगा कि आपके स्क्रॉल व्यू का आकार क्या है। सबकुछ की गणना की जा सकती है, कुछ गणित दें। –

+0

हालांकि इसके लिए देर हो चुकी है, ऐसा क्यों नहीं है: 'बूल चाइल्ड लर्गर थानपेरेंट = स्क्रोल व्यू.जेट चाइल्डएट (0) .getHeight()> scrollView.getHeight(); '? अधिक सुरक्षित और कम _calculations_। – auhmaan

1

बहुत देर हो गई के बाहर इस्तेमाल किया जा करने के लिए अनुकूलित किया जा सकता है, लेकिन मैं निम्नलिखित कोड का उपयोग कर रहा है और यह अधिक सुरक्षित लग रहा है मेरे लिए:

if (view.canScrollVertically(1) || view.canScrollVertically(-1)) { 
    // you code here 
} 
संबंधित मुद्दे