首页 > 代码库 > android如何写一个自定义的dialog可以在Title的位置弹出来
android如何写一个自定义的dialog可以在Title的位置弹出来
先上效果图:
Title的Layout为:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="@dimen/title_height" android:background="@drawable/bg_top_title" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Title" android:textSize="20sp" android:layout_centerInParent="true"/> <ImageView android:layout_width="@dimen/header_btn_width" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:layout_alignParentTop="true" android:paddingLeft="4dp" android:id="@+id/right_button" android:src=http://www.mamicode.com/"@drawable/arrow_dropdown_pressed">
弹出的dialog的Layout为<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/dropdownBckgrnd" android:background="@drawable/bg_pop_up_dimmer" > <ImageView android:layout_width="@dimen/header_btn_width" android:layout_height="wrap_content" android:layout_marginTop="14dp" android:layout_alignParentTop="true" android:paddingLeft="4dp" android:id="@+id/right_button" android:src=http://www.mamicode.com/"@drawable/arrow_dropdown_pressed">
我们使用<span style="white-space:pre"> </span>mDialog = new Dialog(context,R.style.customDialog); mDialog.setContentView(R.layout.dialog_layout);<style name="customDialog" parent="@android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> //设置title <item name="android:windowBackground">@android:color/transparent</item> //dialog应该是透明背景 <item name="android:windowIsFloating">false</item> //dialog不是悬浮的 <item name="android:layoutAnimation">@null</item> //dialog弹出时没有动画 </style>然后我们来设置Dialog的其他属性
mDialog = new Dialog(context,R.style.customDialog); mDialog.setContentView(R.layout.dialog_layout); mDialog.setCanceledOnTouchOutside(true); WindowManager.LayoutParams params = mDialog.getWindow().getAttributes(); params.gravity = Gravity.TOP;//这个设置使这个dialog从上方弹出来 params.windowAnimations = 1; WindowManager manager = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE); Display display = manager.getDefaultDisplay(); windowHeight = display.getHeight(); windowWidth = display.getWidth(); params.width = windowWidth; params.height = windowHeight; mDialog.findViewById(R.id.right_button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); } }); mDialog.findViewById(R.id.dropdownBckgrnd).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDialog.dismiss(); } });
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。