2012-02-20 13 views
1

私のダイアログレイアウトが異常な動作をする理由を理解できません。最後のウィジェットにandroid:layout="wrap_content"を使用すると、ダイアログが非常に狭くなります。Androidのカスタムダイアログレイアウトが機能しない

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:padding="20dp"> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam bibendum leo eget eros mattis nec eleifend nulla elementum. Suspendisse suscipit suscipit enim in mollis. "  
    /> 

    <CheckBox 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Don't remind me later"  
    /> 

    <Button 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Button"  
    /> 

</LinearLayout> 

Javaコード。

private void showDialog() { 
    Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.dial); 
    dialog.setTitle("Dialog title"); 
    dialog.show(); 
} 
+0

このリンクの私の答えを見るhttp://stackoverflow.com/questions/8894300/fully-custom-dialog-in-android-with-the-same-look-regardless-device/8894444#8894444.and upvote ifあなたは – Sameer

+0

が同じ問題を抱えているのが好きですが、それは1.6だったのでfill_parentを使用しなければなりませんでした。確かに奇妙ですが、おそらくウィンドウ上のウィンドウのレイアウト計算と関係があります。 – codeScriber

答えて

1

Match_parentは、親が200個のピクセルを持っている場合は、このウィジェットのサイズは、そう...親のサイズになりますので、ウィジェットが持っていることを意味します。代わりに、wrap_content ...を使用すると、ウィジェットのサイズがそのコンテンツのサイズと等しくなることを意味します。 TextViewに約50ピクセルのテキストが含まれている場合、これはウィジェットのサイズになります。 この定義に基づいて、レイアウトをよりうまく構築できます。

+0

[Samsung Galaxy SL I9003](http://en.wikipedia.org/wiki/)の2つのデバイスでコードをテストしました。 Samsung_Galaxy_SL_I9003)(Android 2.3.7)と[GT-N8000(3G&Wifi)](http://en.wikipedia.org/wiki/Samsung_Galaxy_Note_10.1)(Android 4.1.2)のいずれかを選択します。 _Samsung Galaxy SL I9003_のボタンに 'android:layout_width =" wrap_content "'を使わない限り、ダイアログはOKです。 'android:layout_width =" wrap_content "'と 'android:layout_width =" match_parent "はタブレットでうまくいきます –

0

私は同じ問題がありました。レイアウトとその子コントロールを何に設定しても、私のダイアログは非常に狭かったです。私はEclipseでクリーンビルドを行うことで問題を解決することができました。

関連する問題