2010-09-09 17 views
8

alt text
Android'de ScrollView yüksekliğini nasıl artırırım?

Merhaba arkadaşlar,

GridView ile ScrollView görüntülerini görüntülemek için kullanıyorum. GridView'da dinamik olarak eklenen 16 görüntü var, ancak ScrollView tüm 16 görüntüyü göstermiyor (ekran görüntüsüne bakın).

ScrollView'ün tüm GridView'ünü göstermesini istiyorum, bunu nasıl düzeltebileceğimi bilen var mı?

Hepinize teşekkürler.

xml dosyası:

<?xml version="1.0" encoding="utf-8"?> 
<merge android:layout_width="wrap_content" android:layout_height="340dip" xmlns:android="http://schemas.android.com/apk/res/android"> 
<LinearLayout android:id="@+id/LinearLayout01" 
android:layout_width="fill_parent" 
android:layout_height="320dip" android:orientation="vertical" 
android:background="@color/black"> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/scrollview" 
      android:layout_width="fill_parent" 
      android:layout_height="500dip" 
      android:background="#ffffff" 
      android:paddingTop="10dip" 
      android:paddingLeft="5dip" 
      android:layout_weight="1"> 

<GridView 
        android:id="@+id/jr_lookbook_grid" android:layout_width="fill_parent" 
        android:layout_height="fill_parent" android:numColumns="4" 
        android:verticalSpacing="10dp" android:horizontalSpacing="10dp" 
        android:columnWidth="90dp" android:stretchMode="columnWidth" 
        android:adjustViewBounds="true" 
        android:background="@drawable/shape"  

        android:gravity="center" android:layout_weight="1"/> 
</ScrollView> 

        <Button android:id="@+id/click" 
        android:background="@android:color/transparent" 
        android:text="Load More Pictures..." 

        android:textColor="@color/white" 
        android:layout_width="fill_parent" android:layout_height="wrap_content" 
        android:layout_centerVertical="true" /> 

</LinearLayout> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout02_img" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    android:layout_gravity="center" 
    android:layout_alignParentBottom="true" 
    android:background="@color/black" 
       android:layout_alignParentLeft="true"> 

    <WebView 
     android:id="@+id/webview" 

     android:layout_width="fill_parent" 

     android:layout_height="fill_parent"   
     android:scrollbars="none" 

    /> 
    <ImageView android:id="@+id/ImageView01" 
    android:layout_gravity="center_horizontal" 
    android:scaleType="centerInside" 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 

    android:adjustViewBounds="true"> 
</ImageView> 

    </LinearLayout> 
    <LinearLayout android:id="@+id/LinearLayout02"  android:background="#AA000000" 
     android:layout_width="400px" 
     android:layout_height="50dip" 
     android:layout_gravity="bottom"  
      > 
          <Button 
       android:id="@+id/back" 

       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@drawable/back1" 
       android:layout_alignParentRight="true" 
       android:layout_marginLeft="10dip" 

       /> 

       <Button 
        android:background="@drawable/forward5" 
       android:id="@+id/next" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:gravity="center" 
       android:layout_alignParentRight="true" 
       android:layout_marginLeft="215dip" 

       /> 
</LinearLayout> 

</merge> 

cevap

32

kullanın nitelik android:fillViewport="true". düzen ağırlığının layout & üst kısmının alt kısmı 0 ise o zaman 1 olarak kaydırma görünümlerini belirleme ve layout_height="match_parent" kullanın ScrollView documentation

+0

Teşekkürler! Bu sorun bana bazı kötü saatler sürdü :) –

+1

ne çalışma ... – bubakazouba

0

Bana göre, Izgara Görünümü için kaydırma görünümü eklemenize gerek yoktur. Android'de, herhangi bir ihtiyaç varsa, otomatik olarak kaydırma görünümünü ekleyecektir.

3

GridView öğesini ScrollView içine eklememelisiniz. GridView'ı anlamak için lütfen GridView API'a bakın.

GridView, tanımı gereği öğeleri iki boyutlu kaydırılabilir ızgarada görüntüler. Bu nedenle, ScrollView içinde kaydırılabilir bir bileşen eklerseniz, davranış beklendiği gibi olmaz. ListView'i ScrollView içine ekleyemediğimizden, GridView'ı ScrollView içine ekleyememeli ve eklememeliyiz.

4

Bir AbsoluteLayout üzerinde sabit bir Gezinti çubuğunun altında bir kaydırma görünümüne sahip olduğum benzer bir sorun yaşadım.

Ekranın yüksekliğindeki kaydırma yüksekliği yüksekliğini, navbarın yüksekliğinden daha az ayarlıyorum. Ekranım 480dp yüksekliğinde ve navbar 47dp yüksekliğindeydi, bu yüzden xml düzeninde scrollview yüksekliğini 433dp olarak ayarladım ve kaydırma görüntüsünün üst kısmını bir Y ofsetiyle navbarın altına taşıdım.

<ScrollView 
    android:id="@+id/scroll_view" 
    android:layout_width="fill_parent" 
    android:layout_height="433dp" 
    android:layout_x="0dp" 
    android:layout_y="50dp" 
    android:fillViewport="true" > 

aşağıdaki ithalatı ekleyin: Bu yardımcı fonksiyonu yardımıyla

ScrollView myScrollView = (ScrollView) findViewById(R.id.scroll_view); 
    myScrollView.getLayoutParams().height = ((int) ScHgt(this)-47); 

:

Şimdi
import android.content.Context; 
import android.view.WindowManager; 
import android.widget.ScrollView; 
import android.view.Display; 

Ben etkinlik için onCreate bu eklenen bu çoklu ekran için çalışması için ekran yüksekliğini elde etmek için:

İlgili konular