Android自定义设计对话框问题:没有标题栏

3
我使用以下xml来设计自定义对话框。
<?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 我的代码有什么问题?如何解决?

重新编辑你的问题主题。你完全没有问题删除标题栏。顺便说一句:你可以尝试使用活动(Activity)而不是对话框(Dialog),将其主题设置为对话框。这通常更灵活,适用于自定义布局。 - Marcin Orlowski
1
你的问题是什么? - waqaslam
当我关闭标题栏时,"是"按钮消失了。 - dev_android
2个回答

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
尝试修改布局如下

<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"/>

将所有类似于:android:layout_toRightOf="@id/buffer" 的引用更改为 android:layout_toRightOf="@+id/buffer"。

是的,写代码时出了问题,我解决了,但结果没有改变。 - dev_android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接