• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

franmontiel/FullScreenDialog: A DialogFragment that implements the Full-screen d ...

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称(OpenSource Name):

franmontiel/FullScreenDialog

开源软件地址(OpenSource Url):

https://github.com/franmontiel/FullScreenDialog

开源编程语言(OpenSource Language):

Java 100.0%

开源软件介绍(OpenSource Introduction):

FullScreenDialog

A DialogFragment that implements the Full-screen dialog pattern defined in the Material Design guidelines.

FullScreenDialog Sample GIF

Download

Step 1. Add the JitPack repository in your root build.gradle at the end of repositories:

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

Step 2. Add the dependency

dependencies {
        compile 'com.github.franmontiel:FullScreenDialog:1.0.1'
}

Usage

Just create a new FullScreenDialogFragment using the Builder

new FullScreenDialogFragment.Builder(MainActivity.this)
                        .setTitle(R.string.dialog_title)
                        .setConfirmButton(R.string.dialog_positive_button)
                        .setOnConfirmListener(onConfirmListener)
                        .setOnDiscardListener(onDiscardListener)
                        .setContent(ContentFragment.class, argumentsBundle)
                        .build();

The content

The content of the dialog must be a Fragment that implements the FullScreenDialogContent interface.

The content will be wrapped by the FullScreenDialogFragment. This allows to use as a dialog any Fragment without the need of making it inherit from DialogFragment.

Through the FullScreenDialogContent interface the content Fragment is able to receive events and control the dialog.

Styling the dialog

It is possible to show the dialog in a default dialog window calling setFullScreen(false) on the Builder.

To style the dialog Toolbar a style called FullScreenDialogToolbar must be created.

<style name="FullScreenDialogToolbar">
    <item name="android:background">@color/colorPrimaryDark</item>
    <item name="android:theme">@style/ThemeOverlay.AppCompat.Dark</item>
</style>

Listening to events

To be notified when the dialog is closed due to a confirmation or a dismiss action it is possible set a OnConfirmListener and a OnDiscardListener.

FullScreenDialogContent interface allows the content Fragment to receive the dialog click events through the onConfirmClick and onDiscardClick methods.

Back key press handling

To notify the back key press to the dialog, what will fire the discard button click event notification to the content, the onBackPressed method of FullScreenDialogFragment must be invoked from the Activity method of the same name. This is only needed if the dialog is in fullscreen due to the Fragments lack of ability to detect back key press.

@Override
public void onBackPressed() {
    if (dialogFragment != null && dialogFragment.isAdded()) {
        dialogFragment.onBackPressed();
    } else {
        super.onBackPressed();
    }
}

License

Copyright (C) 2017 Francisco José Montiel Navarro

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap