एंड्रॉइड एपीआई लेवल 8 के लिए ग्रिड व्यू की पंक्ति गणना प्राप्त करने का कोई तरीका है?ग्रिड व्यू की पंक्तियों की संख्या कैसे प्राप्त करें?
उत्तर
मुझे इस आखिरी रात को हल करना पड़ा और यह मेरे लिए काम किया। यह एक बच्चे की चौड़ाई को देखता है और मानता है कि सभी कोशिकाओं की एक ही चौड़ाई है, बच्चे की चौड़ाई से ग्रिडव्यू की चौड़ाई को विभाजित करता है। (getColumnWidth()
पहले एपीआई में भी अनुपलब्ध है, इसलिए कामकाज)।
private int getNumColumnsCompat() {
if (Build.VERSION.SDK_INT >= 11) {
return getNumColumnsCompat11();
} else {
int columns = 0;
int children = getChildCount();
if (children > 0) {
int width = getChildAt(0).getMeasuredWidth();
if (width > 0) {
columns = getWidth()/width;
}
}
return columns > 0 ? columns : AUTO_FIT;
}
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private int getNumColumnsCompat11() {
return getNumColumns();
}
हालांकि इसके साथ कुछ महत्वपूर्ण प्रतिबंध हैं।
- यह केवल ग्रिड व्यू के बाद ही काम करेगा और केवल तभी जब इसमें वास्तव में कुछ विचार जोड़े जाएंगे।
- यह किसी भी सेल स्पेसिंग को
setHorizontalSpacing()
के साथ जोड़ा नहीं जाता है। यदि आप क्षैतिज अंतर का उपयोग करते हैं तो आपको इसके लिए खाते में बदलाव करने की आवश्यकता हो सकती है। - मेरे मामले में मेरे पास कोई पैडिंग या अतिरिक्त चौड़ाई नहीं थी। यदि आप करते हैं, तो यह सुनिश्चित करने के लिए कि विभाजन सही उत्तर के साथ समाप्त होता है, आपको इसे ट्विक करने की आवश्यकता होगी।
आप एंड्रॉयड एपीआई गाइड से GridView पेज पर एक नज़र डालें, तो आप वहाँ एक विधि onItemClickListener
कहा जाता है, जहां एक पैरामीटर स्थिति है देखेंगे। getNumColumns()
के साथ शायद आप पंक्तियों की संख्या प्राप्त कर सकते हैं।
इस प्रयास करें:
Math.ceil((double)gridView.getCount()/(double)gridView.getNumColumns());
मैं वी 8 में getNumColumns की कमी हल, इस मामले में जहां स्तंभों की संख्या संसाधन में निर्दिष्ट किया जाता, एक पूर्णांक संसाधन घोषित करने और का उपयोग करके कि GridView संसाधन और कोड में ।
<integer name="num_grid_columns">2</integer>
<android.support.v7.widget.GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical"
app:columnCount="@integer/num_grid_columns"
app:orientation="horizontal" >
int cols = getResources().getInteger(R.integer.num_grid_columns);
डुप्लिकेट उत्तर जोड़ना क्योंकि मैंने प्रारंभ में duplicate question का उत्तर दिया था।
मैंने इस कार्यान्वयन को मेरे कस्टम ग्रिड व्यू सबक्लास पर जोड़ा, और यह अपेक्षा के अनुसार काम करता था। मैंने ग्रिड व्यू क्लास के घोषित फ़ील्ड की जांच की और कम से कम एपीआई 8 पर उनके पास पहले से ही mNumColumns
नामक एक फ़ील्ड है (जो एपीआई 18 पर getNumColumns()
द्वारा वापस किया गया है)। उन्होंने शायद फील्ड नाम को किसी और चीज़ में नहीं बदला है और फिर एपीआई 8 और 18 के बीच वापस नहीं बदला है, लेकिन मैंने जांच नहीं की है।
@Override
public int getNumColumns() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
return super.getNumColumns();
} else {
try {
Field numColumns = getClass().getSuperclass().getDeclaredField("mNumColumns");
numColumns.setAccessible(true);
return numColumns.getInt(this);
} catch (Exception e) {
return 1;
}
}
}
@ ओवरराइड किसी भी त्रुटि का कारण नहीं बनता क्योंकि यह केवल एक सुरक्षा जांच एनोटिक है।
मुझे यह भी नहीं पता कि अलग-अलग getNumColumnsCompat()
विधि (@ कपासबालपॉज़ उत्तर के रूप में) होने के बजाय ऐसा करने की कोई प्रति-सिफारिशें हैं, लेकिन मुझे यह इस तरह सुंदर साफ पाया गया।
धन्यवाद, यह मेरे लिए काम किया है। – tungdx
- 1. DevExpress WPF ग्रिड - पंक्तियों की संख्या
- 2. एंड्रॉइड ग्रिड व्यू में पंक्तियों की एक निश्चित संख्या कैसे सेट करें?
- 3. sqlalchemy में प्रभावित पंक्तियों की संख्या कैसे प्राप्त करें?
- 4. PostgreSQL में हटाई गई पंक्तियों की संख्या कैसे प्राप्त करें?
- 5. ग्रिड व्यू:
- 6. ग्रिड व्यू बाउंडफील्ड की चौड़ाई
- 7. कोडइग्निटर सक्रिय रिकॉर्ड - लौटाई गई पंक्तियों की संख्या प्राप्त करें
- 8. शक्तियों में पंक्तियों की संख्या की गणना कैसे करें
- 9. ग्रिड व्यू
- 10. NSInternalInconsistencyException (पंक्तियों की अमान्य संख्या)
- 11. मेरी ग्रिड व्यू पंक्तियों से एक वस्तु वापस प्राप्त करना
- 12. ExtJs में ग्रिड पैनल की चुनी पंक्तियां कैसे प्राप्त करें?
- 13. sqlite3 से चयनित परिणाम की पंक्तियों की संख्या कैसे प्राप्त करें?
- 14. रिकॉर्ड की पंक्ति संख्या कैसे प्राप्त करें?
- 15. एनएसओब्जेक्ट की संदर्भ संख्या कैसे प्राप्त करें?
- 16. एसक्यूएल डीबी से खातों की एक्स संख्या प्राप्त करने के लिए, जो पंक्तियों की चर संख्या
- 17. ग्रिड व्यू पंक्तियों और चेकिंग चेकबॉक्स नियंत्रण
- 18. ग्रिड व्यू
- 19. सीएसवी फाइलों की एक श्रृंखला की पंक्तियों की संख्या
- 20. प्रभावित पंक्तियों की संख्या Zend डीबी (अपडेट)
- 21. ग्रिड व्यू
- 22. MYSQL - प्रत्येक तालिका में पंक्तियों की संख्या
- 23. sqlite3 के बाद संशोधित पंक्तियों की संख्या प्राप्त
- 24. SQLite - डेटाबेस में पंक्तियों की संख्या प्राप्त करना
- 25. एक्सेल फ़ाइल में पंक्तियों की Matlab संख्या
- 26. अपठित एसएमएस की संख्या प्राप्त करें
- 27. ग्रिड व्यू
- 28. KendoUI ग्रिड रिकॉर्ड की कुल संख्या
- 29. पंक्तियों की संख्या के आधार पर jqGrid का आकार बदलें?
- 30. जावास्क्रिप्ट को HTML तालिका की पंक्तियों की संख्या प्राप्त करने के लिए
धन्यवाद। getNumColumns() API स्तर 8 – Hong