最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2017年12月08日 08:57:15   作者:huangandroid  
Android中自定義DialogFragment解決寬度和高度問題但是我們很多時候想把DialogFragment的高度固定,那么我們需要設置DialogFragment的高度,在Fragment的onResume()聲明周期方法中設置window的寬高即可

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

1、 概述

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

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

2、 好處與用法

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

使用DialogFragment至少需要實現(xiàn)onCreateView或者onCreateDIalog方法。onCreateView即使用定義的xml布局文件展示Dialog。onCreateDialog即利用AlertDialog或者Dialog創(chuàng)建出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解決寬度和高度問題,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

最新評論

安溪县| 二连浩特市| 牡丹江市| 义乌市| 桐梓县| 石屏县| 成安县| 沙雅县| 保山市| 宜章县| 廊坊市| 炉霍县| 自治县| 阿鲁科尔沁旗| 新乡市| 房山区| 聊城市| 崇阳县| 青川县| 宜良县| 鄄城县| 沙雅县| 多伦县| 德化县| 石城县| 江西省| 白玉县| 赤壁市| 武平县| 修武县| 巴彦淖尔市| 兖州市| 庆元县| 广饶县| 田林县| 西峡县| 长乐市| 上高县| 改则县| 山东省| 江达县|