2012-11-21 34 views
3

我使用以下xml設計自定義對話框。Android定製設計Dialog概念不帶標題欄

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

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="bold" 
     android:paddingTop="15dp" 
     android:paddingRight="70dp" 
     android:textColor="#5A5C5E" 
     android:paddingLeft="70dp" 
     android:id="@+id/bodyPartText" 
     android:layout_centerHorizontal="true" 
     android:text="You selected the arm"/> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textStyle="normal" 
     android:paddingTop="5dp" 
     android:paddingBottom="5dp" 
     android:textColor="#727576" 
     android:id="@+id/confirmText" 
     android:layout_below="@id/bodyPartText" 
     android:layout_centerHorizontal="true" 
     android:text="Is that correct?"/> 
    <View 
     android:layout_width="15dp" 
     android:layout_height="1dp" 
     android:layout_below="@id/confirmText" 
     android:layout_centerHorizontal="true" 
     android:id="@+id/buffer"></View> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="YES" 
     android:paddingTop="10dp" 
     android:paddingBottom="10dp" 
     android:paddingRight="30dp" 
     android:paddingLeft="30dp" 
     android:background="#DDDDDD" 
     android:textColor="#EB9093" 
     android:id="@+id/yesBtn" 
     android:layout_below="@id/confirmText" 
     android:layout_toLeftOf="@id/buffer"/> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="NO" 
     android:paddingTop="10dp" 
     android:paddingBottom="10dp" 
     android:paddingRight="30dp" 
     android:paddingLeft="30dp" 
     android:id="@+id/noBtn" 
     android:background="#DDDDDD" 
     android:textColor="#EB9093" 
     android:layout_below="@id/confirmText" 
     android:layout_toRightOf="@id/buffer"/> 
</RelativeLayout> 

現在我使用下面的代碼來顯示對話框。

Dialog dialog = new Dialog(this); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
dialog.setContentView(R.layout.bodypart_comfirm); 


TextView bodyPartText = (TextView) dialog.findViewById(R.id.bodyPartText); 
Button yesBtn = (Button) dialog.findViewById(R.id.yesBtn); 
Button noBtn = (Button) dialog.findViewById(R.id.noBtn); 

bodyPartText.setText("You selected the " + partName); 

noBtn.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
    dialog.dismiss(); 
} 
});  

yesBtn.setOnClickListener(new OnClickListener() { 
@Override 
public void onClick(View v) { 
    ............. 
    ............. 

} 
}); 

dialog.show(); 

它給出瞭如下的對話框。 enter image description here

現在,如果我刪除了「dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);」這一行,它會給出正確的設計,但帶有標題欄,但我沒有標題欄。

enter image description here

什麼是我的代碼的問題?如何解決它?

+0

重新編輯你的問題的主題。刪除標題欄完全沒有問題。順便說一句:你可以嘗試使用活動,而不是對話框,主題爲對話框。自定義佈局通常更靈活 –

+1

您的問題到底是什麼? – waqaslam

+0

當我離開標題欄時,是按鈕丟失。 –

回答

0

嘗試修改佈局

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textStyle="bold" 
    android:paddingTop="15dp" 
    android:paddingRight="70dp" 
    android:textColor="#5A5C5E" 
    android:paddingLeft="70dp" 
    android:id="@+id/bodyPartText" 
    android:layout_centerHorizontal="true" 
    android:text="You selected the arm"/> 
<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textStyle="normal" 
    android:paddingTop="5dp" 
    android:paddingBottom="5dp" 
    android:textColor="#727576" 
    android:id="@+id/confirmText" 
    android:layout_below="@+id/bodyPartText" 
    android:layout_centerHorizontal="true" 
    android:text="Is that correct?"/> 
<View 
    android:layout_width="15dp" 
    android:layout_height="1dp" 
    android:layout_below="@+id/confirmText" 
    android:layout_centerHorizontal="true" 
    android:id="@+id/buffer"></View> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="YES" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:paddingRight="30dp" 
    android:paddingLeft="30dp" 
    android:background="#DDDDDD" 
    android:textColor="#EB9093" 
    android:id="@+id/yesBtn" 
    android:layout_below="@+id/confirmText" 
    android:layout_toLeftOf="@+id/buffer"/> 
<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="NO" 
    android:paddingTop="10dp" 
    android:paddingBottom="10dp" 
    android:paddingRight="30dp" 
    android:paddingLeft="30dp" 
    android:id="@+id/noBtn" 
    android:background="#DDDDDD" 
    android:textColor="#EB9093" 
    android:layout_below="@+id/confirmText" 
    android:layout_toRightOf="@+id/buffer"/> 

變化像所有的引用:機器人:layout_toRightOf = 「@ ID /緩衝器」 到Android:layout_toRightOf =「@ + ID /緩衝區「

+0

是的,寫作存在問題,我解決了,但沒有改變結果。 –

1

將此樣式添加到styles.xml文件中:

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

,然後實例化與您的對話:

LayoutInflater inflater=LayoutInflater.from(mContext); 
View contentView=inflater.inflate(R.layout.instructions_popup_layout, null); 
final Dialog dialog=new Dialog(this, R.style.FullHeightDialog); 
dialog.setContentView(contentView); 
Button button=(Button) dialog.findViewById(R.id.okButton); 
+0

不解決問題,結果一樣。 –