के लिए इस
int maxScroll = yourScrollView.getChildAt(0).getMeasuredWidth() - yourScrollView.getWidth();
परिवर्तन getWidth() getHeight करने के लिए() करके चौड़ाई के लिए अधिकतम पुस्तक प्राप्त कर सकते है यहां यह है:
public class myScrollView extends ScrollView
{
public myScrollView(Context context)
{
super(context);
}
public myScrollView(Context context, AttributeSet attributeSet)
{
super(context,attributeSet);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
View view = (View)getChildAt(getChildCount()-1);
int d = view.getBottom();
d -= (getHeight()+getScrollY());
if(d==0)
{
//you are at the end of the list in scrollview
//do what you wanna do here
}
else
super.onScrollChanged(l,t,oldl,oldt);
}
}
आप या तो xSl लेआउट में myScrollView का उपयोग कर सकते हैं या इसे yo में तुरंत चालू कर सकते हैं आपका कोड संकेत: उपरोक्त कोड के साथ यदि उपयोगकर्ता 10 बार बार सूची के अंत में हिट करता है तो आपका कोड 10 बार चलाएगा। कुछ मामलों में जब आप अपनी सूची को अपडेट करने के लिए दूरस्थ सर्वर से डेटा लोड करना चाहते हैं, तो वह व्यवहार अवांछित होगा (संभवतः)। अवांछित स्थिति की भविष्यवाणी करने और उनसे बचने की कोशिश करें।
संकेत 2: कभी-कभी सूची के अंत तक पहुंचने से आपकी स्क्रिप्ट चलाने के लिए सही समय हो सकता है। उदाहरण के लिए उपयोगकर्ता लेखों की एक सूची पढ़ रहा है और अंत के करीब हो रहा है। फिर आप सूची खत्म होने से पहले लोड करना शुरू कर देते हैं। ऐसा करने के लिए, बस अपने उद्देश्य को पूरा करने के लिए इस कार्य करें:
if(d<=SOME_THRESHOLD) {}
स्रोत
2013-07-25 14:02:37
स्क्रॉलव्यू के रूप में केवल एक बच्चा हो सकता है, जहां आप निश्चित हैं कि एक है: यदि (scrollView.getScrollY() + scrollView.getHeight()> = scrollView.getChildAt (0) .getMeasuredHeight()) {/ * स्क्रॉल किया गया है नीचे * /} – Tom
क्या यह एक विधि में रखा गया था? यह कोड कैसे लागू किया गया था? –
@ItzHoudini मैंने इसे यथासंभव सामान्य बना दिया ताकि आप इसे किसी भी तरह से उपयोग कर सकें। – sanna