2015-01-31 110 views
-1

警告對話框佈局有點問題。此警報對話框只有一個按鈕。Android警報對話框佈局

現在它看起來像這樣:
http://s12.postimg.org/d1358qo3h/Screenshot_2015_01_31_23_38_14.png

但我whant看起來像這樣: http://s9.postimg.org/65bxhrh4f/Screenshot_2015_01_31_23_38_14_2.png

對不起,鏈接,我沒有足夠的聲譽上傳圖片。

任何想法如何做到這一點?以及如何去除這個白色醜陋的條紋呢?

代碼:

AlertDialog.Builder builder = new AlertDialog.Builder(MainMenu.this); 

LayoutInflater inflater = MainMenu.this.getLayoutInflater(); 
View logoutDialog = inflater.inflate(R.layout.dialog_logout, null); 
builder.setView(logoutDialog); 
final AlertDialog alert = builder.create(); 

Button btnLogout = (Button) logoutDialog.findViewById(R.id.btnLogout); 
btnLogout.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     new actionLogout().execute(); 
     alert.dismiss(); 
    } 
}); 

alert.setCanceledOnTouchOutside(true); 

WindowManager.LayoutParams wm = alert.getWindow().getAttributes(); 
wm.gravity = Gravity.BOTTOM; 

alert.show(); 

而且dialog_logout XML文件:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <Button 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:background="#DF4A51" 
     android:text="Log out" 
     android:textColor="#FFF" 
     android:textSize="30sp" 
     android:id="@+id/btnLogout" 
     android:clickable="true" 
     android:gravity="center_vertical|center_horizontal" 
     android:textStyle="bold" 
     android:layout_gravity="left|bottom|right|center_horizontal" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" /> 
</RelativeLayout> 
+0

它似乎是白色的條子來了,因爲你得到的設計(或按鈕的圖像)有特殊效果添加到他們使它覺得從後臺掏出。您需要從具有此設計的xml文件發佈代碼,以便此社區可以正確引導您。 – Kailas 2015-02-02 09:42:20

回答

0

最後我用Dialog不是AlertDialog。

LayoutInflater inflater = MainMenu.this.getLayoutInflater(); 
View logoutDialog = inflater.inflate(R.layout.dialog_logout, null); 
final Dialog dialog = new Dialog(MainMenu.this); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(logoutDialog); 

Button btnLogout = (Button) logoutDialog.findViewById(R.id.btnLogout); 
btnLogout.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if (isOnline()) { 
      new actionLogout().execute(); 
      dialog.dismiss(); 
     } else { 
      ErrorDialog.showErrorDialog(MainMenu.this, getString(R.string.error), getString(R.string.no_network)); 
     } 
    } 
}); 

WindowManager.LayoutParams wm = dialog.getWindow().getAttributes(); 
wm.gravity = Gravity.BOTTOM; 
dialog.setCanceledOnTouchOutside(true); 
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 
dialog.show(); 

並添加了一些更改佈局。

<?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:minWidth="10000dp" 
    android:orientation="vertical"> 

    <Button 
     android:id="@+id/btnLogout" 
     android:layout_width="fill_parent" 
     android:layout_height="100dp" 
     android:background="#DF4A51" 
     android:clickable="true" 
     android:gravity="center_vertical|center_horizontal" 
     android:text="@string/logout" 
     android:textColor="#FFFFFF" 
     android:textSize="30sp" 
     android:textStyle="bold" /> 

</LinearLayout> 
0

這是很難知道你在做什麼,如果你不發佈您的代碼。看着你的個人資料,這是你的第一個問題。我建議您閱讀asking questions的建議以從本網站獲得最佳結果。

我會嘗試猜測你可能會做什麼。我想你可能使用類似:

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setPositiveButton(R.string.logout, new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int id) { 
     // logout user ... 
    } 
}); 

所有按鈕使用方法AlertDialog.BuildersetPositiveButtonsetNeutralButtonsetNegativeButton繪製與線條展現自己的邊界補充說。

您可以使用Custom Layout代替AlertDialog

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 

// Get the LayoutInflater for the Activity so you can inflate your own views 
LayoutInflater inflater = getActivity().getLayoutInflater(); 

// Inflate your dialog layout into a new View object 
View logoutDialog = inflater.inflate(R.layout.dialog_logout, null); 

// Find the button in your dialog layout, and configure it how you want 
Button btnLogout = (Button) logoutDialog.findViewById(R.id.btn_logout); 
btnLogout.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     // logout user ... 
    } 
}); 
.... 

// Finally tell the builder to use your custom dialog view 
builder.setView(logoutDialog); 
.... 
+0

謝謝,但如何刪除對話框的默認邊距? – 2015-02-02 11:31:52