2014-11-20 64 views
0

我試圖創建自定義Dialog,但它不會創建正常寬度爲Doalog。如果我將windowIsFloating屬性設置爲true的樣式,則標題具有正常寬度,則它變爲全寬但陰影消失。請幫助我創建具有自定義佈局和正常大小的對話框的正常對話框。Android自定義對話框寬度錯誤

<style name="MainTheme.DialogTheme" parent="@android:style/Theme.Dialog"> 
    <item name="android:windowBackground">@android:color/transparent</item> 
    <item name="android:layout_gravity">center</item> 
    <item name="android:windowNoTitle">true</item> 
</style> 

import android.app.Dialog; 
import android.content.Context; 
import android.os.Bundle; 

     public class MyDialog extends Dialog { 

      public MyDialog(Context context) { 
       super(context); 
      } 

      @Override 
      protected void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.my_dialog); 
      } 

     } 

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:card_view="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:windowMinWidthMajor="@android:dimen/dialog_min_width_major" 
    card_view:cardBackgroundColor="@color/bg_color" 
    card_view:cardCornerRadius="5dp"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="24dp"> 

      <com.astuetz.RobottoRegularTextView 
       android:id="@android:id/text1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:paddingBottom="16dp" 
       android:text="text1" 
       android:textColor="@color/title_text_color" 
       android:textSize="20sp" 
       android:textStyle="bold" /> 

      <com.astuetz.RobottoRegularTextView 
       android:id="@android:id/text2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="text2" 
       android:textColor="#CC000000" 
       android:textSize="14sp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="36dp" 
      android:gravity="center|right" 
      android:orientation="horizontal" 
      android:paddingBottom="16dp" 
      android:paddingLeft="16dp" 
      android:paddingRight="16dp"> 

      <Button 
       android:id="@android:id/button1" 
       style="?android:attr/borderlessButtonStyle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@android:color/transparent" 
       android:gravity="center" 
       android:minHeight="36dp" 
       android:minWidth="88dp" 
       android:text="btn1" 
       android:textAllCaps="true" 
       android:textSize="14sp" 
       android:textStyle="bold" /> 

      <Button 
       android:id="@android:id/button2" 
       style="?android:attr/borderlessButtonStyle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:background="@android:color/transparent" 
       android:gravity="center" 
       android:minHeight="36dp" 
       android:minWidth="88dp" 
       android:text="btn2" 
       android:textAllCaps="true" 
       android:textSize="14sp" 
       android:textStyle="bold" /> 
     </LinearLayout> 

    </LinearLayout> 
</android.support.v7.widget.CardView> 
+0

請參閱http://stackoverflow.com/questions/15786369/create-shadow-for-dialog – Fareya 2014-11-20 18:42:11

回答

0

我記得和對話框的寬度和再設置它幫助麻煩。也許它也會幫助你:

<item name="android:minWidth">0dp</item> 
<item name="android:maxWidth">@null</item>