wake-up-neo.com

Android Dialogbreite

Ich kann die Dialogbreite scheinbar nicht steuern. Ich habe so ein einfaches Layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:layout_width="fill_parent"
    Android:layout_height="fill_parent"
    Android:theme="@Android:style/Theme.Dialog"> 

    <ScrollView 
        Android:orientation="vertical"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent">
        <LinearLayout     Android:orientation="vertical"
        Android:layout_width="fill_parent"
        Android:layout_height="fill_parent">

        <TextView 
            Android:id="@+id/name_Prompt_view"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/name_Prompt"
            Android:padding="10dip"/>

        <EditText 
            Android:id="@+id/name_inp" 
            Android:layout_width="fill_parent" 
            Android:layout_height="wrap_content" 
            Android:lines="1"
            Android:maxLines="1"
            Android:maxLength="48"
            Android:inputType="text" />

        <TextView 
            Android:id="@+id/t1_Prompt_view"
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:text="@string/t1_Prompt"
            Android:padding="10dip"/>

        <Spinner 
            Android:id="@+id/t1_inp" 
            Android:layout_width="fill_parent" 
            Android:layout_height="wrap_content" 
            Android:lines="1"
            Android:maxLines="1"
            Android:maxLength="48"
            Android:inputType="text"
            Android:singleLine="true"
            Android:layout_weight="1"
            Android:entries= "@array/t1_allowed_values" />

         </LinearLayout>

    </ScrollView>

</LinearLayout>

aus irgendeinem Grund ist der Dialog nur für das Texteingabefeld mit einer Breite von ca. 11 Zeichen breit genug. Wie fülle ich den Bildschirm mit der Breite des Dialogfelds?

50
Solid

Ich hatte das gleiche problem.

Ich habe folgenden Code verwendet, um dialog fill_parent zu erstellen, und es hat gut funktioniert.

public class SharePost extends Dialog
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.adaptor_contentsharepost);

        LayoutParams params = getWindow().getAttributes();
        params.height = LayoutParams.FILL_PARENT;
        getWindow().setAttributes((Android.view.WindowManager.LayoutParams) params);
    }
}

layout

<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:orientation="vertical"
    Android:id="@+id/dialogWidth"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent">

    contents here

</LinearLayout>
86
UMAR

Ich benutze:

getWindow().setLayout(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
56
hrules6872

Stellen Sie eine minimale Breite im obersten Layout ein.

Android:minWidth="300dp"

Beispielsweise:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout Android:orientation="vertical" Android:layout_width="fill_parent" Android:layout_height="fill_parent"
  xmlns:Android="http://schemas.Android.com/apk/res/Android" Android:minWidth="300dp">

<!-- Put remaining contents here -->

</LinearLayout>
15
roy mathew

Wie Matthias ausführt Wie bekomme ich ein Aktivitätsfenster im Dialogstil, um den Bildschirm auszufüllen? UMARs Lösung funktioniert, aber nur, wenn die Fensterattribute NACH dem Aufruf von setContentView () festgelegt wurden.

13
Alex Pretzlav

Versuche dies. Für mich geht das.

    dialog = new Dialog(Activity.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.feedback_popup);
    dialog.setCancelable(false);
    dialog.setCanceledOnTouchOutside(false);

    WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
    lp.copyFrom(dialog.getWindow().getAttributes());
    lp.width = WindowManager.LayoutParams.MATCH_PARENT;
    lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
    lp.gravity = Gravity.CENTER;

    dialog.getWindow().setAttributes(lp);
7
Pranav Mittal

Seit API 8 ist FILL_PARENT veraltet. Verwenden Sie stattdessen MATCH_PARENT.

params.height = LayoutParams.MATCH_PARENT;
0
Miguel Rivero