2012-02-20 2 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/ful-custom-dialog-in-android-with-the-same-look-regardless-device/8894444#8894444.and upvote if вам понравилась – Sameer

+0

была та же проблема, хотя мне пришлось использовать fill_parent, так как это было 1.6. Странно, но, вероятно, что-то связано с раскладкой окна окна на окне ... – codeScriber

ответ

1

Match_parent означает, что размер этого виджета, будет размер родителя ... так, если родитель имеет 200 пикселей, так что виджет будет иметь. Вместо этого, если вы используете wrap_content ... означает, что виджет будет иметь размер, равный его содержимому. Поэтому, если TextView содержит текст длиной около 50 пикселей, это будет размер виджета. Основываясь на этих определениях, вы можете теперь лучше создавать свои макеты.

+0

Я проверил код на двух устройствах: [Samsung Galaxy SL I9003] (http://en.wikipedia.org/wiki/ 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). Диалог в порядке, если я не использую 'android: layout_width =" wrap_content "' для кнопки на _Samsung Galaxy SL I9003_; оба 'android: layout_width =" wrap_content "и' android: layout_width = "match_parent" 'хорошо работают на планшете –

0

У меня была та же проблема. Мой диалог был очень узким, независимо от того, как я установил макеты и их дочерние элементы управления. Однако я смог исправить эту проблему, выполнив чистую сборку в Eclipse.

Смежные вопросы