您的位置:首页 > Web前端 > CSS

Dialog自定义样式及使用笔记

2016-06-08 10:26 381 查看
AlertDialog与Dialog的使用:自定义布局文件:layout_dialog.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/id_layout_alert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_green_Color"
android:orientation="vertical">
<TextView
android:id="@+id/titleView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/bg_slight_green_Color"
android:textSize="20sp"
android:textColor="@color/txt_green_Color"
android:text="确认删除吗?"
android:gravity="center"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:ellipsize="marquee" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:orientation="horizontal">
<Button
android:id="@+id/btn_confirm"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:text="确定"
android:textSize="16sp"
android:textColor="@color/txt_green_Color"
android:padding="5dp"
android:background="@drawable/bg_button_selector"/>
<Button
android:id="@+id/btn_cancel"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:layout_marginRight="20dp"
android:textColor="@color/txt_green_Color"
android:text="取消"
android:textSize="16sp"
android:padding="5dp"
android:background="@drawable/bg_button_selector"/>
</LinearLayout>
</LinearLayout>
1、AlertDialog:
AlertDialog.Builder builder=new AlertDialog.Builder(context);
AlertDialog mAlertDialog=builder.create();
Window window = dialog.getWindow();
window.setGravity(Gravity.BOTTOM);//设置dialog的显示位置
mAlertDialog.show();
View view=LayoutInflater.from(context).inflate(R.layout.layout_dialog,null);
Button confirmBtn=(Button)view.findViewById(R.id.btn_confirm);
Button cancelBtn=(Button)view.findViewById(R.id.btn_cancel);
confirmBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//TODO click operator
mAlertDialog.dismiss();
}
});
cancelBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
mAlertDialog.dismiss();
}
});
mAlertDialog.setContentView(view);//该方法在调用show()方法之后调用
2、Dialog:
Dialog dialog=new Dialog(context,R.style.custom_dialog);
dialog.setContentView(R.layout.layout_dialog);
Button confirmBtn=(Button)dialog.findViewById(R.id.btn_confirm);
Button cancelBtn=(Button)dialog.findViewById(R.id.btn_cancel);
confirmBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
//TODO click operator
dialog.dismiss();
}
});
cancelBtn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
注意:使用Dialog时dialog.getWindow().setGravity(Gravity.center)对dialog的位置显示并没有影响,如果想让Dialog居中,可以为其设置style,继承Theme.Dialog,就可以使其默认居中,style设置如下:
<style name="custom_dialog" parent="android:Theme.Dialog" >
<item name="android:windowBackground">@android:color/transparent</item><!-- 窗口背景颜色 -->
<item name="android:windowIsTranslucent">true</item><!-- 窗口是否半透明——是(与第一条配合使用)-->
<item name="android:windowFrame">@null</item><!-- Dialog的windowFrame框为无  -->
<item name="android:backgroundDimEnabled">true</item><!-- 是否允许背景模糊  -->
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">false</item>
<item name="android:windowContentOverlay">@null</item> <!--这个不设置的话,可能会出现边框黑线 -->
<!--<item name="android:windowIsFloating">true</item> 是否浮现在activity之上   多了这句话activity宽度就不会充满全屏-->
</style>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Dialog