2011-03-22 29 views
7

i aşağıdaki düzen içinde bir etkinlik için:Nasıl dikey kaydırma Android

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:isScrollContainer="true"> 
    <Gallery android:id="@+id/gallery" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="bottom"/> 
    <LinearLayout android:id="@+id/chart" android:orientation="horizontal" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"   
    android:layout_weight="1" /> 
</LinearLayout> 

Galeri zamanında doldurulmuş ve kullanıcı bir öğenin üzerine dokunduğunda i resimleri dizisi ile LinearLayout dolduracak olan. Dikey olarak kaydırmak istiyorum ancak kullanıcı Galeriye dokunduğunda bir ScrollView eklerseniz LinearLayout artık doldurulmuyor.

Normal mi? Dikey kaydırma eklemek için nasıl yapabilirim?

Teşekkürler ve selamlar c.

+0

ScrollView eklediğinizde neler olup bittiğini biraz daha açıklayabilir misiniz? –

+0

ScrollView öğesini root öğesi olarak eklediğimde, kullanıcı bir galeri öğesine dokunduğunda hiçbir şey olmuyor ve doğrusal düzen, İçeriği görüntüle ile doldurulmuyor; Ben hata ayıklamaya çalıştım ve nesneler doğru şekilde işlenir, ancak layout.addView (newView ...) yaptığınızda Görünüm gösterilmez – Cris

+0

setContentView (R.id.my_layout) yapıyor ve bunu bir ScrollView içinde sarmaya çalışıyorsunuz? Neden addView aradığınızı bilmiyorum. –

cevap

0

Dikey kaydırma görünümünüzün yalnızca bir çocuğu olabilir; bu, galeri görünümünüzü ve doğrusal çizgiyi başka bir linerLayout ile "chart" olarak işaretlemeniz gerektiği anlamına gelir, bu da bir scrollView ile zarflanması gerekir.

Yeni görünümlerinizi eklediğinizde, kaydırma görünümünün çekilebilir durumunu yenilemeniz veya geçersiz kılmanız gerekebilir, buna benzer bir şey deneyin, böylece buna göre genişler.

13
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
<ScrollView android:id="@+id/ScrlView" android:layout_width="fill_parent" android:layout_height="fill_parent" > 
<LinearLayout android:id="@+id/layoutForScroll" android:orientation="vertical" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"   
    > 
    <Gallery android:id="@+id/gallery" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="bottom"/> 
    <LinearLayout android:id="@+id/chart" android:orientation="horizontal" 
    android:layout_width="fill_parent" android:layout_height="wrap_content"   
    android:layout_weight="1" /> 
</LinearLayout> 
</ScrollView> 
</LinearLayout> 
0

Galeri sınıfını genişletmeniz ve Çizim prosedüründe tuvali 90 derece döndürmeniz gerekir. Sonra sadece onTouch olayını ve birkaçını değiştirmek gibi bir kaç evlat edinme gerekli. Bundan sonra mizanpajla ilgili bir kaç problem olacaktır (çünkü bu, paftada parametrelerinde çizmek istemektedir). Bu yüzden onu bir LinearLayout içine koydum ve düzen boyutunu düzeltdim. Son dikey galeri aslında içine yerleştirilmiş bir galeriye sahip doğrusal bir düzen. Uyguladım ve gayet iyi çalışıyor. Sadece koyduğunuz her şeyi diğer yöne 90 derece döndürmeniz yeterli olacaktır. Ticari işlem gerçekten çok azdır, böylece içine koymak istediğiniz her görünümü genişletebilir ve çekme prosedüründe diğer yöne döndürebilirsiniz.

İlgili konular