国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

解決Android中自定義DialogFragment解決寬度和高度問題

2019-10-22 18:20:53
字體:
來源:轉載
供稿:網友

關于詳解Android應用中DialogFragment的基本用法,大家可以參考下。

1、 概述

DialogFragment在android 3.0時被引入。是一種特殊的Fragment,用于在Activity的內容之上展示一個模態的對話框。典型的用于:展示警告框,輸入框,確認框等等。

在DialogFragment產生之前,我們創建對話框:一般采用AlertDialog和Dialog。注:官方不推薦直接使用Dialog創建對話框。

2、 好處與用法

使用DialogFragment來管理對話框,當旋轉屏幕和按下后退鍵時可以更好的管理其聲明周期,它和Fragment有著基本一致的聲明周期。且DialogFragment也允許開發者把Dialog作為內嵌的組件進行重用,類似Fragment(可以在大屏幕和小屏幕顯示出不同的效果)。上面會通過例子展示這些好處~

使用DialogFragment至少需要實現onCreateView或者onCreateDIalog方法。onCreateView即使用定義的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog創建出Dialog。

下面通過示例代碼給大家介紹下Android中自定義DialogFragment解決寬度和高度問題

Android中自定義DialogFragment解決寬度和高度問題但是我們很多時候想把DialogFragment的高度固定,那么我們需要設置DialogFragment的高度,在Fragment的onResume()聲明周期方法中設置window的寬高即可。

  @Override  public void onResume() {    super.onResume();      getDialog().getWindow().setLayout(DeviceUtil.getDeviceWidth(), ResUtils.dp2px(295));  }

設置DialogFrament 從底部彈出,并且彈出動畫為向上滑出,消失動畫為向下滑出

WindowManager.LayoutParams params = getDialog().getWindow()    .getAttributes();params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;params.windowAnimations = R.style.bottomSheet_animation;getDialog().getWindow().setAttributes(params);

完整的代碼如下:

@Nullable  @Override  public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {    WindowManager.LayoutParams params = getDialog().getWindow()        .getAttributes();    params.gravity = Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;    params.windowAnimations = R.style.bottomSheet_animation;    getDialog().getWindow().setAttributes(params);    getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);    getDialog().setCanceledOnTouchOutside(true);    getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));    mContentView = inflater.inflate(R.layout.fragment_create_quick, container, false);    return mContentView;  }  @Override  public void onResume() {    super.onResume();    getDialog().getWindow().setLayout(DeviceUtil.getDeviceWidth(), HlyUtils.dp2px(380));  } <style name="bottomSheet_animation" parent="@android:style/Animation">    <item name="android:windowEnterAnimation">@anim/slide_in_bottom</item>    <item name="android:windowExitAnimation">@anim/slide_out_bottom</item> </style><?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"  android:shareInterpolator="false">  <translate    android:duration="300"    android:fromYDelta="100.0%p"    android:toYDelta="0.0" /></set><?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"  android:shareInterpolator="false">  <translate    android:duration="300"    android:fromYDelta="0%p"    android:toYDelta="100%p" /></set>

總結

以上所述是小編給大家介紹的解決Android中自定義DialogFragment解決寬度和高度問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!


注:相關教程知識閱讀請移步到Android開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 离岛区| 东乌珠穆沁旗| 崇信县| 望谟县| 永昌县| 虎林市| 涿鹿县| 南澳县| 微博| 唐海县| 蓬莱市| 广丰县| 勃利县| 盱眙县| 木里| 常德市| 城步| 延安市| 新密市| 德庆县| 安平县| 瓦房店市| 运城市| 启东市| 南汇区| 赤壁市| 辽阳市| 五莲县| 县级市| 博野县| 浠水县| 沧源| 呼伦贝尔市| 宁蒗| 屏东市| 裕民县| 逊克县| 孝昌县| 饶平县| 开阳县| 蒙自县|