मेरे ऐप के कुछ हिस्सों के लिए, उपयोगकर्ता को नामों की एक सूची के साथ प्रस्तुत किया जाता है और उन्हें फिट होने के लिए उन्हें समूह में रखने के लिए कहा जाता है।
(ध्यान दें, सूची दृश्य कोड को एंड्रॉइड व्यू ट्यूटोरियल से वर्बेटिम कॉपी किया गया था। मैंने अभी तक इसे अपनी आवश्यकताओं के लिए अनुकूलित नहीं किया है, मैं केवल यह पता लगाने की कोशिश कर रहा हूं कि यह काम कैसे किया जाए।)
मूल लेआउट एक LinearLayout है, जिसमें स्क्रॉलव्यू (नीचे दिए गए कोड में "groupScrollView" कहा जाता है), जिसमें RelativeLayout शामिल है। मेरे पास कुछ बटन और पाठ है, और फिर उसके नीचे मेरी सूची दृश्य, जो नामों की सूची प्रदर्शित करता है। यह सब दृश्य स्क्रीन क्षेत्र की तुलना में लंबा है, इसलिए उपयोगकर्ता को यह सब देखने के लिए लंबवत स्क्रॉल करने की अनुमति है।
यह सब सुंदर तरीके से काम करता है, सिवाय इसके कि जब पृष्ठ लोड होता है तो यह हमेशा मेरी सूची के शीर्ष पर पूर्व-स्क्रॉल किया जाता है - पृष्ठ के मध्य में। मेरे द्वारा बनाया गया पाठ और बटन उपयोगकर्ता को यह बताता है कि क्या करना है, दिखाई नहीं दे रहा है।
मैं स्क्रीन को पकड़ सकता हूं और स्क्रॉल कर सकता हूं, यह ठीक काम करता है, लेकिन मैं चाहूंगा कि स्क्रीन को पहले से ही स्क्रॉल किया जाए। उपयोगकर्ता को ताज़ा लोड किए गए पृष्ठ के शीर्ष को देखने के लिए UP स्क्रॉल नहीं करना चाहिए। लेकिन मैंने जो भी प्रोग्राम स्क्रीन के शीर्ष पर स्क्रॉल करने का प्रयास किया है वह विफल हो गया है।
यहाँ मेरा तरीका है विधि:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.groups);
mainScrollView = (ScrollView)findViewById(R.id.groupsScrollView);
//get the Bundle out of the Intent...
Bundle extras = getIntent().getExtras();
mNames = extras.getStringArray("mNames");
setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, mNames));
ListView lv = getListView();
lv.setTextFilterEnabled(true);
//This is the line I'm having issues with
mainScrollView.pageScroll(View.FOCUS_UP);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// When clicked, show a toast with the TextView text
Toast.makeText(getApplicationContext(), ((TextView) view).getText(),
Toast.LENGTH_SHORT).show();
}
});
}
लाइन "mainScrollView.pageScroll (View.FOCUS_UP); समस्या है। यह एक त्रुटि का कारण नहीं है, लेकिन यह कुछ भी करने के लिए प्रतीत नहीं होता है। मैंने स्क्रॉल (0,0), स्क्रॉलडायरेक्शन (View .OCUS_UP) की कोशिश की है। ), और बाकी सब मैं सोच सकता हूं।
चूंकि मुझे कोई त्रुटि नहीं मिलती है, इसलिए मुझे यह मान लेना होगा कि ये स्क्रॉल कमांड वास्तव में काम कर रहे हैं, लेकिन वे स्क्रॉल व्यू या रिलेलेटलाइयूट के शीर्ष के बजाय सूची दृश्य के शीर्ष पर स्क्रॉल कर रहे हैं। ऐसा लगता है कि Google द्वारा स्क्रॉलटो (int x, int y) विधि के अपने विवरण की पुष्टि की जाती है, जहां वे कहते हैं कि "यह संस्करण स्क्रॉलिंग को हमारे बच्चे की सीमा में भी जकड़ता है।"
तो लंबे समय तक एक लंबा सवाल बनाने के लिए, मैं स्क्रॉल स्क्रीन के भीतर मौजूद स्क्रीन पर विचारों का एक समूह कैसे लोड करूं, और फिर प्रोग्रामेटिक रूप से पृष्ठ के शीर्ष पर पूरी चीज़ को स्क्रॉल करूं ताकि उपयोगकर्ता इसके साथ बातचीत कर सके?
धन्यवाद!