दिलचस्प पोस्ट
बाश कमांड लाइन तक पहुंच $ $ बनाम $ $ Excel फ़ाइल (.xls / .xlsx) को पढ़ने का सर्वोत्तम तरीका कैसे एक बालक तत्व के लिए अस्पष्टता रद्द करने के लिए? सेलेनियम वेबड्रिवर का उपयोग करके फ़ाइल डाउनलोड पॉपअप को कैसे संभाल सकता है? iPhone कोर डेटा की बचत करते समय अनसुलझे त्रुटि कैसे जावास्क्रिप्ट में एक div में गतिशील रूप से एंकर टैग जोड़ने के लिए? क्या पुट, डिलीट, हेड, आदि अधिकांश वेब ब्राउज़रों में उपलब्ध हैं? .NET में एक स्ट्रिंग गणित मूल्यांकनकर्ता है? एकल लेबल में एकाधिक फ़ॉन्ट रंगों का उपयोग करें क्यों नहीं JSX सहारा तीर कार्यों का उपयोग करें या बाँध चाहिए? एंड्रॉइड स्टूडियो में कैसे स्वच्छ प्रोजेक्ट करें? सी में एक +++++ बी काम क्यों नहीं करता? कोणीय 2 – यूआरएल मापदंडों को कैसे पार करें? तीन। जेएस: कैमरे के संबंध में ऑब्जेक्ट आकार और स्क्रीन पर वस्तु स्थिति प्राप्त करें PHP सहयोगी सरणी डुप्लिकेट कीज़

स्क्रॉलव्यू के अंदर गैर स्क्रॉल सूची देखें

मैं इस तरह एक लेआउट बनाने की कोशिश कर रहा हूं:

ख़ाका

समस्या यह है कि मैं सूचीव्यूल्स स्क्रॉल करने के लिए नहीं चाहता। मैं चाहता हूं कि वे जितना अधिक हो उतना ऊंचा होना चाहिए और पूरी स्क्रीन को स्क्रॉल करने योग्य बनाना चाहिए। यदि मैं ListView की ऊंचाई को wrap_content सेट करता wrap_content , तो यह काम नहीं करता है। इसे काम करने का एकमात्र तरीका एक विशिष्ट ऊंचाई निर्धारित करना है – लेकिन मुझे नहीं पता है कि सूची दृश्य में कितने आइटम होंगे।

मुझे पता है कि मुझे सूचीव्यू स्क्रॉल दृश्य के अंदर नहीं रखना चाहिए – लेकिन मुझे सूचीव्यू को स्क्रॉल करने के लिए नहीं चाहिए, बस सभी आइटम दिखाने के लिए

शायद यह काम करने का एक बेहतर तरीका है?

Solutions Collecting From Web of "स्क्रॉलव्यू के अंदर गैर स्क्रॉल सूची देखें"

आप कस्टम सूची दृश्य बनाते हैं जो गैर स्क्रॉल योग्य है

 public class NonScrollListView extends ListView { public NonScrollListView(Context context) { super(context); } public NonScrollListView(Context context, AttributeSet attrs) { super(context, attrs); } public NonScrollListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom); ViewGroup.LayoutParams params = getLayoutParams(); params.height = getMeasuredHeight(); } } 

आपकी लेआउट संसाधन फाइल में

 <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:fadingEdgeLength="0dp" android:fillViewport="true" android:overScrollMode="never" android:scrollbars="none" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <!-- com.Example Changed with your Package name --> <com.Example.NonScrollListView android:id="@+id/lv_nonscroll_list" android:layout_width="match_parent" android:layout_height="wrap_content" > </com.Example.NonScrollListView> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@+id/lv_nonscroll_list" > <!-- Your another layout in scroll view --> </RelativeLayout> </RelativeLayout> </ScrollView> 

जावा फ़ाइल में

ListView की बजाय अपनी कस्टमलिस्टिव का ऑब्जेक्ट बनाएं जैसे:
गैर-स्क्रोललिस्टदृश्य गैर_सक्रोल_लिंक = (नॉन-स्कोललिस्टव्यू) पाएंव्यूबीआईआईडी (आर.आईड.लिव_एनंसक्रोल_लिस्ट);

किसी भी सूची दृश्य का उपयोग करने की कोई आवश्यकता नहीं है।

यदि आप वास्तव में इसके बारे में सोचते हैं, तो आपके मामले में एक सूची दृश्य को एक रैखिक लेआउट के साथ बदल दिया जा सकता है। एडॉप्टर समान होगा, हालांकि, आपके listview के साथ एडेप्टर को संलग्न करने के बजाय, बस अपने डेटा पर पाश के लिए एडाप्टर के getView फ़ंक्शन को कॉल करें और पुनर्प्राप्त किए गए दृश्यों को अपने ऊर्ध्वाधर लाइनरलेआउट में जोड़ें।

हालांकि इस दृष्टिकोण की सिफारिश की जाती है यदि आपकी सूची में आपकी छोटी संख्या में आइटम हैं और उन वस्तुओं के प्रदर्शन का प्रतिनिधित्व स्मृति गहन नहीं है

ऐसा करने का सबसे अच्छा तरीका (2017 में) एक नेस्टेडक्रोल दृश्य के साथ रीसायकलदृश्य का उपयोग करना है। कोई हैक्स की आवश्यकता नहीं है और यह बॉक्स से बाहर काम करता है जैसे कि आप इसे चाहते हैं।

खैर, मार्क मर्फी उर्फ ​​कॉमन्सवेर नामक एक शांत एंड्रॉइड लड़का है और उन्होंने सीडब्ल्यूएसी मर्ज एडाप्टर नामक एक बहुत ही उपयोगी घटक का निर्माण किया है जो कि आपको क्या करने की अनुमति देता है। आपको गतिशील रूप से और एक्सएमएल से विचार जोड़ने की आवश्यकता होगी; लेकिन आपके सरल UI पर विचार करने से, यह समस्या नहीं होनी चाहिए। मैं इसे इस तरह के मामलों के लिए उपयोग कर रहा हूं जब मुझे पता नहीं है कि मुझे किस तरह का डेटा स्क्रॉल करना चाहिए।

यदि आप इसका प्रयोग नहीं करना चाहते हैं (लाइसेंसिंग कारणों के लिए), तो आप एक सूची सूची (उन 2 लगातार सूची-दृश्यों के बजाय) और getItemViewsCount , getItemViewType , getItemViewType , लेआउट के ऊपर देने के लिए getItemViewsCount , getItemViewType और getView । यदि आप Google पर android listview different rows खोज करते हैं तो आपको उपयोगी जानकारी मिल जाएगी। उदाहरण के लिए इस लिंक , या यह एक

हालांकि, मैं मर्ज एडाप्टर के लिए जाना होगा।

अगर आपके आइटम की ऊँचाई / विस्तृत गणना करना संभव हो तो मेरे पास एक आसान समाधान है … आपको केवल एक माता-पिता LinearLayout का ListView बनाना होगा और फिर निश्चित माता-पिता जावा से ऊँचाई चाहिए

यहां छवि विवरण दर्ज करें

मान लीजिए आपको इस दृश्य को डिज़ाइन करने की आवश्यकता है … अब मूल लेआउट आकार जावा से परिभाषित है …

 final LinearLayout parent=(LinearLayout)findViewById(R.id.parent); final ListView listview=(ListView)findViewById(R.id.listview); parent.setLayoutParams(new LinearLayout.LayoutParams(parent.getLayoutParams().width, dpToPx( number_of_item_in_list * per_item_size_in_dp ))); //number_of_item_in_list is list side ~ listArray.size(); //per_item_size_in_dp = calculate item size in dp. Ex: 80dp public static int dpToPx(int dp) { return (int) (dp * Resources.getSystem().getDisplayMetrics().density); } 

बस इतना ही 🙂

वह सूचीव्यू चुनें जिसे आप स्क्रॉल करने योग्य बनाना चाहते हैं, और इसके बाद सिस्टम 'setOnTouchListener' को स्वचालित रूप से जोड़ने के लिए सिस्टम सूची सूची के अंदर स्क्रॉल करें

 final ListView listview = (ListView) findViewById(R.id.list); listview.setOnTouchListener(new ListView.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // Disallow ScrollView to intercept touch events. v.getParent().requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: // Allow ScrollView to intercept touch events. v.getParent().requestDisallowInterceptTouchEvent(false); break; } // Handle ListView touch events. v.onTouchEvent(event); return true; } }); listview.setClickable(true); 

मुझे आशा है कि आपके लिए काम करता है

मेरी राय है, आप स्क्रॉलएव्यू में सूचीदृश्य का उपयोग नहीं कर सकते। इसके बजाय, आप उन के लिए अलग-अलग XML फाइल बना सकते हैं और इसे सूची दृश्य में जोड़ सकते हैं addHeaderview और addFooterview का उपयोग कर

उदाहरण के लिए,

 View view=getLayoutInflater().inflate(R.layout.yourlayout,null); lv=(ListView)listview.findViewById(R.id.listView); lv.addHeaderView(view); 

यह 100% ठीक काम करता है