LinearLayout'u nasıl kaydırılabilir hale getirirsiniz?


Yanıtlar:


459

Doğrusal düzeni bir <ScrollView>

Bir örnek için buraya bakın:

 <?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>

Not: fill_parent kullanımdan kaldırılmıştır ve API Seviye 8 ve üstü sürümlerde match_parent olarak yeniden adlandırılmıştır .


1
@DanielMagnusson Link hala çalışıyor ... İşte bir video kılavuzu: youtube.com/watch?v=kNX996ZZ2CI
Bryan Denny

33
Dış LinearLayout'a ihtiyacınız olduğunu düşünmüyorum.
Lawrence Kesteloot

1
@ Kanun Hayır, gerekli değildir, ancak görüşünüzün geri kalanının neye benzediğine bağlı olabilir.
Bryan Denny

1
Üst lineer sırada yalnızca Scrollview varsa, "Bu ScrollView mizanpajı veya LinearLayout üst öğesi işe yaramaz; background niteliğini diğer görünüme aktar" uyarısı alırsınız; bu, yalnızca bir öğeyle doğrusal bir görünüme sahip olmanın anlamsız olduğu anlamına gelir.
Niels

2
ve bazı önemli uyarılar: ScrollView yalnızca 1 çocuğa sahip olmalıdır
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

Bu etiket kullanılarak yapılabilir <ScrollView>. İçin scrollview , bir şey bunu hatırlatmak zorunda, scrollview tek çocuğu olması gerekir .

Tam düzeninizin kaydırılabilir olmasını istiyorsanız <ScrollView>, en üste ekleyin . Aşağıda verilen örneği kontrol edin.

<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>

Ancak, düzeninizin bir bölümünün kaydırılabilir olmasını istiyorsanız, <ScrollView>o bölümün içine ekleyin . Aşağıda verilen örneği kontrol edin.

<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

Deneme ve yanılma yoluyla bunu nasıl yaptım.

ScrollView - (the outer wrapper).

    LinearLayout (child-1).

        LinearLayout (child-1a).

        LinearLayout (child-1b).

ScrollView yalnızca bir alt öğe içerebileceğinden, bu alt öğe doğrusal bir düzendir. Sonra diğer tüm yerleşim tipleri ilk doğrusal yerleşimde meydana gelir. Henüz göreceli bir düzen eklemeye çalışmadım, ama onlar beni deli ediyorlar, bu yüzden aklıma dönene kadar bekleyeceğim.


Biçimlendirmeyi düzeltebilir misiniz lütfen. İlk satırınız kod bölümünden kaçırıldı ve site, çok önemli bir düzenleme olduğu için düzeltmeme izin vermiyor.
Caltor

1

aşağıdaki özelliği kullanmanız ve doğrusal mizanpaj içine almanız gerekir

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

</scrollView>
</LinearLayout>

0

Sen yerleştirmeniz gerekir scrollview Düzeni dosyasının ilk çocuğu olarak ve şimdi iç o senin LinearLayout koydu. Şimdi, android, kaydırılabilir gösterilip gösterilmeyeceği içerik ve cihaz boyutuna göre karar verecektir.

ScrollView birden fazla alt öğeye sahip olamayacağından, lineer yerleşimin kardeş olmadığından emin olun .


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

LinearLayout'ta bir atribribute ekleyebilirsiniz: android:scrollbars="vertical"


4
Bu yalnızca kaydırma çubuklarının görünürlüğünü kontrol eder. Ancak sizin için bir kaydırma görünümü oluşturmaz.
Botond Kopacz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.