2012-07-05 13 views
5

Mam ten DialogFragment. Kiedy to pokażę, staje się pełnoekranowy, tzn. Pokrywa się z bieżącym ekranem. Jak zrobić mały jak AlertDialog?DialogFragment jest pełnoekranowy. Jak to zrobić mały

Podejrzewałem, że to z powodu RelativeLayout, więc owinąłem LinearLayout poza RelativeLayout, ale nic się nie zmienia.

public class LoginDialogFragment extends DialogFragment { 

@Override 
public void onCreate(final Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme); 
} 

@Override 
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, 
     final Bundle savedInstanceState) { 
    final View v = inflater.inflate(R.layout.login_dialog, container, false); 
    final EditText emailEditText = (EditText)v.findViewById(R.id.emailEditText); 
    final EditText passwordEditText = (EditText)v.findViewById(R.id.passwordEditText); 
    final Button loginButton = (Button)v.findViewById(R.id.loginButton); 
    loginButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(final View v) { 
       checkLogin(emailEditText.getText().toString(), passwordEditText.getText().toString()); 
      } 
     }); 
    return v; 
} 
} 

Układ

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

    <TextView 
     android:id="@+id/loginTitleTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:text="@string/loginDialogTitle" 
     android:textColor="@color/White" 
     android:textSize="20sp" /> 

    <EditText 
     android:id="@+id/emailEditText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/loginTitleTextView" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="textEmailAddress" > 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/passwordEditText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/emailEditText" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="textPassword" /> 

    <TextView 
     android:id="@+id/passwordTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/passwordEditText" 
     android:layout_alignBottom="@+id/passwordEditText" 
     android:layout_alignParentLeft="true" 
     android:layout_weight="1" 
     android:text="@string/password" 
     android:textColor="@color/White" 
     android:textSize="16sp" /> 

    <TextView 
     android:id="@+id/emailTextView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/emailEditText" 
     android:layout_alignBottom="@+id/emailEditText" 
     android:layout_alignParentLeft="true" 
     android:layout_weight="1" 
     android:text="@string/email" 
     android:textColor="@color/White" 
     android:textSize="16sp" /> 

    <Button 
     android:id="@+id/loginButton" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/passwordEditText" 
     android:text="@string/loginButtonText" /> 

    </RelativeLayout> 

</LinearLayout> 
+0

Zorientowałeś się o tym przez przypadek? –

+0

@ Emerald214 spróbuj tego swojego aktuFragmentAct = new yourfragmentActivity(); act.show(); zamiast dodawać jako fragment. Wyświetli się i zmieni rozmiar w oparciu o treść – krishh

Odpowiedz

2

połączeń setStyle(STYLE_NORMAL, android.R.style.Theme_Dialog); zamiast setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme); w onCreate(). Czy to pomogło?

+0

nope, to nie pomoże – Dmitry

+0

Jaki jest twój podstawowy motyw? Wypróbuj setStyle (DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog); wewnątrz metody onCreate() –

+0

Mam ten sam problem i to nic nie zmienia w ogóle –