Home

Awesome

Android Arsenal API Join the chat at https://gitter.im/orhanobut/dialogplus

<img align='right' src='https://github.com/orhanobut/dialogplus/blob/master/art/DP1.png' height='128'/>

DialogPlus

Simple and advanced dialog solution.

<img src='https://github.com/nr4bt/dialogplus/blob/master/art/dialogplus.gif' height='400'/> <img src='https://github.com/nr4bt/dialogplus/blob/master/art/dialogplusanim.gif' height='400'/>

DialogPlus provides android L dialog animation
DialogPlus provides 3 position:
DialogPlus provides 3 content types:

Gradle

implementation 'com.orhanobut:dialogplus:1.11@aar'

Usage

Use the builder to create the dialog.

Basic usage

DialogPlus dialog = DialogPlus.newDialog(this)
  .setAdapter(adapter)
  .setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
    }
  })
  .setExpanded(true)  // This will enable the expand feature, (similar to android L share dialog)
  .create();
dialog.show();

More options

Enable expand animation same as Android L share dialog

.setExpanded(true) // default is false, only works for grid and list

Set expand animation default height

.setExpanded(true, 300)

Select different holder.

setContentHolder(new ListHolder())
.setContentHolder(new ViewHolder(R.layout.content))

or pass view itself

.setContentHolder(new ViewHolder(view))
.setContentHolder(new GridHolder(COLUMN_NUMBER))
View view = dialogPlus.getHolderView();
.setGravity(Gravity.CENTER)
.setCancelable(true)
.setAdapter(adapter);
.setOnItemClickListener(new OnItemClickListener() {
  @Override
  public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
  }
})
.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(DialogPlus dialog, View view) {

    }
})
.setMargin(left, top, right, bottom)
.setPadding(left, top, right, bottom)
.setFooter(R.layout.footer)

or use view

.setFooter(view)
View view = dialogPlus.getFooterView();
.setHeader(R.layout.header)

or use view

.setHeader(view)
View view = dialogPlus.getHeaderView();
.setInAnimation(R.anim.abc_fade_in)
.setOutAnimation(R.anim.abc_fade_out)
.setContentWidth(ViewGroup.LayoutParams.WRAP_CONTENT)  // or any custom width ie: 300
.setContentHeight(ViewGroup.LayoutParams.WRAP_CONTENT)
.setOnDismissListener(new OnDismissListener() {
    @Override
    public void onDismiss(DialogPlus dialog) {

    }
})
.setOnCancelListener(new OnCancelListener() {
    @Override
    public void onCancel(DialogPlus dialog) {

    }
})
.setOnBackPressListener(new OnBackPressListener() {
    @Override
    public void onBackPressed(DialogPlus dialog) {

    }
})
.setContentBackgroundResource(resource)
.setOverlayBackgroundResource(resource)

License

<pre> Copyright 2016 Orhan Obut 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. </pre>