2012-02-03 22 views
5

yüksekliği için fill_parent verilirken alt öğelerini ve taşmasını aşağı doğru ittirir GridLayout, çocuklarını her zaman gereksinimlerine karşılık gelen düzende gösterecektir. Örneğin aşağıdaki beyanı:GridLayout,

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:columnCount="3" 
    android:orientation="vertical" 
    android:rowCount="4" 
    android:useDefaultMargins="true" > 
... 
    <ImageView 
     android:id="@+id/main_image" 
     android:layout_column="1" 
     android:layout_columnSpan="2" 
     android:layout_row="3" 
     android:scaleType="fitStart" /> 
</GridLayout> 

GridLayout fill_parent beyan ve bu şekilde ben değil taşma bunu beklenebilir. GridLayout, bu durumda pencere (tam yükseklik) olan üst öğenin boyutunu almalıdır. Ancak hiyerarşi görüntüleyicide GridLayout, hem dikey hem de yatay için Wrap_content olarak ayarlanır. Örneğin, ImageView (büyük bir görüntüdür) veya herhangi bir metin görünümü, kendilerine sığacak şekilde ve konteynere taşacak şekilde itilecektir. resim görünümü taşma

image view

belgeleri okuma sırasında

container grid view

anlıyorum: konteyner ızgara görünümü ebeveyn neresinde

Bu

hiyerarşi görüntüleyicisi içinde görülebilir yerçekimi ayarlamak için bir ihtiyaç vardır. Denediğim kadarıyla, her türlü gravite seçeneğini ve görüntü ölçekleme seçeneklerini çok etkili kullanmadan kullandım. Kenar boşluklarını useDefaultMargins="false" ile kaldırmak, sorunu ızgarada kalmaya yönlendiren düzen taşmasını değiştirir.

Sorum şu:

  • Bu bir hata mı yoksa yanlış GridLayout kullanıyorum
  • Onların konteyner sığacak şekilde ve kalan boşlukları
+0

Ben ilk elemanını açık bir yüksekliğe vermedikçe bu http://developer.android.com/resources/tutorials/views/hello-gridview.html – NagarjunaReddy

+0

Ben, bu aynı sorunu var, o kadar sürer bkz tüm ebeveyn ve yüzeyin geri kalanını iter ... – sethro

cevap

0
doldurmak için GridLayout çocukları zorlayabilir nasıl

Diğer düzenlerdeki numara, ilk öğeye bir android: layout_weight = "1.0" vermek ve diğer öğelere hiçbir şey vermemek. Neden çalışıyor, hiç bir fikrim yok, ama öyle. İşte bir ImageView, bir TextView ve bir Düğme görüntüleyen basit bir XML. ImageView'a atanan layout_weight parametresi olmadan, metin ve düğme aşağı kaydırıldı.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@color/white" 
    android:orientation="vertical" 
    android:keepScreenOn = "true" > 

    <ImageView 
     android:id="@+id/imageView_surprise" 
     android:layout_width="wrap_content" 
     android:layout_height="0dip" 
     android:scaleType="centerInside" 
     android:contentDescription="@string/accessibility_imageView_surprise" 
     android:layout_weight="1.0" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:layout_gravity="bottom" > 

     <TextView 
      android:id="@+id/textView_message" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:textColor="@color/black" 
      android:textSize="24sp" 
      android:gravity="center_horizontal" /> 

     <Button 
      android:id="@+id/button_share" 
      style="@style/button_text" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" /> 

    </LinearLayout> 

</LinearLayout> 
İlgili konular