2015-12-02 52 views
-1

我为了实现布局是我的自定义对话框布局是这样的:如何从自定义对话框中删除标题?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="@color/gray_back" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 
<LinearLayout 
    android:id="@+id/mainLayout" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="20dp" 
    android:layout_centerInParent="true"> 

    <ImageView 
     android:src="@drawable/user" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="center" 
     android:layout_gravity="center" 
     android:contentDescription="@string/app_name" /> 

    <EditText 
     android:id="@+id/username" 
     android:background="@android:color/white" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="16dp" 
     android:layout_marginBottom="20dp" 
     android:paddingTop="10dp" 
     android:paddingBottom="10dp" 
     android:gravity="center" 
     android:layout_gravity="center" 
     android:hint="@string/new_profile_name" /> 

    <View 
     android:layout_width="fill_parent" 
     android:layout_height="1dip" 
     android:background="?android:attr/dividerHorizontal" /> 

</LinearLayout> 

<LinearLayout 
    style="?android:attr/buttonBarStyle" 
    android:layout_below="@id/mainLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:paddingTop="0dip" 
    android:measureWithLargestChild="true"> 

    <Button 
     android:id="@+id/cancel" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Cancel"/> 
    <Button 
     android:id="@+id/ok" 
     android:layout_width="0dip" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Ok"/> 
</LinearLayout> 

我创造了它编程方式是这样的:

final Dialog dialog = new Dialog(context); 
dialog.setContentView(R.layout.dialog_add_profile); 

Button dialogButton = (Button) dialog.findViewById(R.id.cancel); 
// if button is clicked, close the custom dialog 
dialogButton.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     dialog.dismiss(); 
     } 
    }); 
dialog.show(); 

但后来我的对话框显示像这个:

enter image description here

如何从图像中将剩余空间删除到布局顶部?

我想试试这个:

dialog.setWindowFeature(Window.WINDOW_NO_TITLE); 

但它崩溃...我如何删除剩余空间?

+0

粘贴崩溃日志。 –

回答

3

创建一个新的样式,添加:

<style name="NoTitleDialog" parent="@android:Theme.Dialog"> 
<item name="android:windowNoTitle">true</item> </style> 

最后:

Dialog d = new Dialog(this, R.style.nameOfStyle); 

编辑: This answer

+0

这是最干净的解决方案! – Sonhja

1

尝试使用DialogFragment类,它不强迫自定义视图标题。你可以在你的活动中使它成为一个静态嵌套类。

public static class MyDialogFragment extends DialogFragment { 
    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setView(R.layout.custom_view); 
    return builder.create(); 
    } 
} 

让你的活动延长AppCompatActivity,使用进口

import android.support.v4.app.DialogFragment; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 

然后显示对话框实例对话框片段调用显示()传递支持片段经理和一个字符串变量如下:

MyDialogFragment dialogFragment = new MyDialogFragment(); 
    dialogFragment.show(getSupportFragmentManager(), "f1"); 
相关问题