[英]Custom alert dialog android
我正在使用android中的自定義警報對話框。
在我的代碼中使用了這些樣式。
<style name="DialogAnimation">
<item name="android:windowEnterAnimation">@anim/slide_up_dialog</item>
<item name="android:windowExitAnimation">@anim/slide_out_down</item>
<!-- Animation for dialog box -->
<style name="DialogSlideAnim" parent="AppBaseTheme">
<item name="android:windowAnimationStyle">@style/DialogAnimation</item>
</style>
從這些樣式中,我得到了帶有邊框的對話框。 但我需要像下面這樣。
我正在使用LG Nexus 4設備。 我應該怎么做才能做到這一點?
我有一些解決方案。 請看下面的例子。
在xml樣式中使用以下代碼:
<resources>
....
<style name="DialogAnimation">
<item name="android:windowEnterAnimation">@anim/abc_slide_in_bottom</item>
<item name="android:windowExitAnimation">@anim/abc_slide_out_bottom</item>
</style>
<style name="DialogSlideAnim">
<item name="android:windowAnimationStyle">@style/DialogAnimation</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowFrame">@null</item>
<item name="android:windowNoTitle">true</item>
</style>
</resources>
和對話框的布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Male"
android:id="@+id/male"
android:layout_marginBottom="-10dp"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Female"
android:id="@+id/female"
android:layout_below="@id/male"
android:layout_gravity="center_horizontal"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Cancel"
android:layout_below="@id/female"
android:id="@+id/cancel"
android:layout_gravity="center_horizontal"/>
</RelativeLayout>
和對話框的java文件:
public class YourDialog extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new Dialog(getActivity(), R.style.DialogSlideAnim);
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.your_dialog, container, false);
return view;
}
@Override
public void onResume() {
super.onResume();
final WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
final Window window = getDialog().getWindow();
window.setGravity(Gravity.BOTTOM);
lp.copyFrom(window.getAttributes());
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.WRAP_CONTENT;
window.setAttributes(lp);
}
}
結果:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.