2012-01-06 3 views
5

私はボタンプレスで作成するDialogFragmentをいくつかの情報の選択に使用しました。Android Fragment weightSumを使用しているときlayoutMarginまたはlayoutWidthを無視するように表示されるダイアログ

私がweightSumを使用している場合でも、私は、自分が親レイアウトのlayoutMarginまたはwidthを指定しても、diaglogが画面をいっぱいにするように見えます。

これは3.2を実行し、互換性のないデフォルトのフラグメントライブラリを使用しているGalaxyタブ上にあります。

提案が参考になります。

ありがとうございました

以下は私が使用しているレイアウトです。

<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

を明示的に 'android:weightSum'属性を指定するか、子供の' layout_weight'を指定することによって暗黙的に指定します。ここにコードがあります。ここでweightSumが使われています: 'float weightSum = mWeightSum> 0.0f? mWeightSum:totalWeight; ' –

+0

私は上記(レイアウト)と3.2モトローラXoomの上であなたのコードを試しました(画面全体を満たしていないと思われます)。したがって、おそらくあなたのコードの中にあると思うようになります。 – Raykud

+0

私はいくつかの場所にXoomを置いていると思っていますが、私のクライアントは「Galaxy Tab」を仕様しています。 – draksia

答えて

0

私にはその奇妙な我々はライナーのレイアウト内の相対的なレイアウトを使用している間android:weightSumが突然動作している理由。

私はあなたのコードを試してみましたが、すべてのライナーレイアウトを管理することができる持っている...

これを試してみてください..あなたは `指定する方法LinearLayout``のための問題無しがあるので、奇妙

<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> 
関連する問題