आप LinearLayout को कैसे स्क्रॉल कर सकते हैं?


241

मेरे पास स्क्रीन पर बहुत सारे आइटम हैं और मुझे स्क्रॉलबार का उपयोग करने की आवश्यकता है ताकि उपयोगकर्ता नीचे स्क्रॉल कर सके। हालाँकि, स्क्रॉल या तो दिखाई नहीं दे रहा है या यह काम नहीं कर रहा है। स्क्रॉलबार को a में जोड़ना कैसे संभव है LinearLayout?


जवाबों:


459

एक के साथ रैखिक लेआउट लपेटें <ScrollView>

एक उदाहरण के लिए यहाँ देखें:

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout 
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       xmlns:android="http://schemas.android.com/apk/res/android">
       <ScrollView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">
            <LinearLayout 
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:orientation="vertical">
                  <!-- Content here -->
            </LinearLayout>
      </ScrollView>
 </LinearLayout>

नोट: fill_parent अपग्रेड किया गया है और एपीआई स्तर 8 और उच्च में match_parent का नाम दिया गया है ।


1
@DanielMagnusson लिंक अभी भी यहाँ काम करता है ... यहाँ एक वीडियो गाइड है: youtube.com/watch?v=kNX996ZZ2CI
ब्रायन डेनी

33
मुझे नहीं लगता कि आपको बाहरी लिनियरलैट की आवश्यकता है।
लॉरेंस Kesteloot

1
@ लॉरेंस नहीं, यह आवश्यक नहीं है, लेकिन इस बात पर निर्भर हो सकता है कि आपका बाकी दृश्य कैसा दिखता है।
ब्रायन डेनी

1
यदि आपके पास केवल शीर्ष रेखीय स्काउट में स्क्रॉलव्यू है, तो आपको चेतावनी मिलती है "यह स्क्रोल व्यू लेआउट या इसके लिनियर लयआउट अभिभावक बेकार है। पृष्ठभूमि विशेषता को अन्य दृश्य में स्थानांतरित करें" जिसका अर्थ है कि यह केवल एक आइटम के लिए एक रेखीय लेआउट है।
नील्स

2
और कुछ आयात नोटिस: स्क्रॉलव्यू में केवल 1 बच्चा होना चाहिए
O-9

145
<ScrollView 
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/scroll" 
      android:layout_width="match_parent"
      android:layout_height="wrap_content">

      <LinearLayout 
            android:id="@+id/container"
            android:orientation="vertical" 
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
      </LinearLayout>

 </ScrollView>

4

यह टैग का उपयोग करके किया जा सकता है <ScrollView>। के लिए scrollview , एक बात आपको लगता है कि याद दिलाने के लिए है, scrollview एक भी बच्चे को होना आवश्यक है

यदि आप चाहते हैं कि आपका पूरा लेआउट स्क्रॉल योग्य हो तो <ScrollView>शीर्ष पर जोड़ें । नीचे दिए गए उदाहरण की जाँच करें।

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scroll" 
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout 
        android:id="@+id/container" 
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">
            <!-- Content here -->
    </LinearLayout>

</ScrollView>

लेकिन अगर आप चाहते हैं कि आपके लेआउट का कुछ हिस्सा स्क्रॉल करने योग्य हो तो <ScrollView>उस हिस्से के भीतर जोड़ें । नीचे दिए गए उदाहरण की जाँच करें।

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="400dp">

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout 
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">
                <!-- Content here -->
        </LinearLayout>

    </ScrollView>

</LinearLayout>

4

यहाँ है कि मैंने इसे परीक्षण और त्रुटि के द्वारा कैसे किया।

ScrollView - (the outer wrapper).

    LinearLayout (child-1).

        LinearLayout (child-1a).

        LinearLayout (child-1b).

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


क्या आप कृपया प्रारूपण को ठीक कर सकते हैं। आपकी पहली पंक्ति कोड सेक्शन से छूट गई है और साइट मुझे इसे ठीक नहीं करने देगी क्योंकि यह बहुत अधिक संपादित है।
काल्टर

1

आपको निम्न विशेषता का उपयोग करने और इसे रैखिक लेआउट के भीतर संलग्न करने की आवश्यकता है

<LinearLayout ...>
<scrollView ...> 

</scrollView>
</LinearLayout>

0

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

सुनिश्चित करें कि LinearLayout कोई भाई नहीं है, क्योंकि बनाओ scrollview से अधिक बाल नहीं हो सकता।


0
 <LinearLayout 
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">

        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
                <---------Content Here --------------->
            </LinearLayout>
       </ScrollView>
    </LinearLayout>

-27

आप रैखिकलेयआउट में एक योगदान दे सकते हैं: android:scrollbars="vertical"


4
यह केवल स्क्रॉलबार की दृश्यता को नियंत्रित करता है। लेकिन यह आपके लिए स्क्रोलव्यू नहीं बनाता है।
बॉटोंड कोपाकज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.