2012-07-05 27 views
5

Tôi có DialogFragment này. Khi tôi hiển thị nó, nó trở thành toàn màn hình, nghĩa là nó chồng lên màn hình hiện tại. Làm thế nào để làm cho nó nhỏ như một AlertDialog?DialogFragment là toàn màn hình. Làm thế nào để làm cho nó nhỏ

Tôi đoán đó là vì RelativeLayout nên tôi đã bọc LinearLayout ra ngoài RelativeLayout nhưng không có gì thay đổi.

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; 
} 
} 

Layout

<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

Bạn có nhận ra điều này bằng bất kỳ cơ hội nào không? –

+0

@ Emerald214 thử thisFragmentAct act = new yourfragmentActivity(); act.show(); thay vì thêm dưới dạng phân đoạn. Nó sẽ hiển thị và thay đổi kích thước dựa trên nội dung – krishh

Trả lời

2

Gọi setStyle(STYLE_NORMAL, android.R.style.Theme_Dialog); thay vì setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme); trong onCreate(). Nó có giúp gì không?

+0

không, nó không giúp được – Dmitry

+0

Chủ đề cơ bản của bạn là gì? Hãy thử setStyle (DialogFragment.STYLE_NO_TITLE, android.R.style.Theme_Holo_Light_Dialog); bên trong phương thức onCreate() –

+0

Tôi có cùng một vấn đề và điều này không thay đổi gì cả –

Các vấn đề liên quan