2012-01-06 6 views
5

Tengo DialogFragment que creo en el botón de presionar usado para seleccionar información.Diálogo de fragmento de Android que parece ignorar layoutMargin o layoutWidth cuando se utiliza weightSum

Parece que no importa lo que haga si estoy usando weightSum, el diaglog llenará la pantalla incluso si especifiqué un layoutMargin o ancho del diseño principal.

Esto está en una Galaxy Tab ejecutando 3.2 y utilizando la biblioteca de Fragmentos predeterminada no la de compatibilidad.

Cualquier sugerencia sería útil.

Gracias

A continuación se muestra el diseño que estoy utilizando.

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayoutZoneDialog" 
    android:layout_width="400dp" 
    android:layout_height="300dp" 
    android:layout_gravity="center" 
    android:background="@drawable/modal_background" 
    android:orientation="horizontal" 
    android:padding="20dp" 
    android:weightSum="1" > 

    <ListView 
     android:id="@+id/zoneSelectListView" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight=".25" 
     android:divider="@color/trans" 
     android:listSelector="@android:color/transparent" 
     android:padding="25dp" 
     android:scrollbars="vertical" 
     android:scrollbarFadeDuration="0" > 
    </ListView> 


    <RelativeLayout 
     android:id="@+id/zoneSelectImageLayout" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight=".75" 
     android:gravity="center"> 

     <ImageView 
      android:id="@+id/zoneSelectMainImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:background="@color/black_50_percent" 
      android:scaleType="fitCenter" /> 

     <ImageView 
      android:id="@+id/zoneSelectCloseImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentTop="true" 
      android:src="@drawable/modal_close" 
      android:padding="15dp" /> 

    </RelativeLayout> 

</LinearLayout> 
+0

Eso es raro, porque no hay materia para 'LinearLayout' el modo de especificar' weightSum', ya sea explícitamente con el atributo 'android: weightSum' o implícitamente especificando' layout_weight''s de los niños. Aquí está el código, donde se usa weightSum: 'float weightSum = mWeightSum> 0.0f? mWeightSum: totalWeight; ' –

+0

bien He intentado con su código anterior (diseño) y en 3.2 Motorola Xoom funciona como se supone que debe (no llenando toda la pantalla). Por lo tanto, me lleva a pensar que tal vez haya algo en tu código. – Raykud

+0

Creo que tenemos un Xoom en algún lado, pero mi cliente ha especificado Galaxy Tab. – draksia

Respuesta

0

Su extraño para mí por qué android:weightSum se comporta de forma inesperada, mientras que el uso de la disposición relativa dentro del diseño de línea.

he intentado código y hacer que poder manejar con toda Disposición Liner ..

Prueba esto ..

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayoutZoneDialog" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:weightSum="1" 
> 

    <ListView 
     android:layout_weight=".25" 
     android:id="@+id/zoneSelectListView" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 

     android:listSelector="@android:color/transparent" 
     android:scrollbars="vertical" 
     android:scrollbarFadeDuration="0" > 
    </ListView> 


    <LinearLayout 
     android:layout_weight=".75" 
     android:id="@+id/zoneSelectImageLayout" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     > 

     <ImageView 
      android:id="@+id/zoneSelectMainImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:scaleType="fitCenter" /> 

     <ImageView 
      android:id="@+id/zoneSelectCloseImage" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:padding="15dp" 
      android:layout_gravity="right"/> 

    </LinearLayout> 
</LinearLayout> 
Cuestiones relacionadas