对话框自定义的5种方法
来源:互联网 发布:sql select语句返回值 编辑:程序博客网 时间:2024/06/07 13:15
1.使用DialogFragment(谷歌官方推荐)
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (true) { // 若重写了onCreateDialog(),则优先使用onCreateDialog布局 // 若没有,则使用onCreateView布局 new MyDialogFragment().show(getSupportFragmentManager(), "dialog"); } else { // 当作fragment使用, 必须重写onCreateView()布局 getSupportFragmentManager().beginTransaction() .add(android.R.id.content, new MyDialogFragment()) .addToBackStack(null) .commit(); }}class MyDialogFragment extends DialogFragment { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { return new AlertDialog.Builder(getActivity()).setView(R.layout.dialog).create(); } @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { // getDialog().requestWindowFeature(Window.FEATURE_NO_TITLE); return inflater.inflate(R.layout.dialog, container, false); }}
2.使用AlertDialog实现
new AlertDialog.Builder(this)// 自定义布局 .setView(R.layout.dialog) .show();
3.使用Dialog实现
在values/styles.xml<style name="MyDialogStyleBottom"> <!--出入动画--> <item name="android:windowAnimationStyle">@style/AnimBottom</item> <!--悬浮--> <item name="android:windowIsFloating">true</item> <!--无标题--> <item name="android:windowNoTitle">true</item> <!--背景透明变暗--> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> <item name="android:backgroundDimEnabled">true</item> </style>Dialog dialog = new Dialog(布局样式MyDialogStyleBottom);dialog.setContentView(布局); dialog.show();
4.使用PopupWindow实现
View v = View.inflate(布局);PopupWindow p = new PopupWindow(v);p.setBackground··· p.setLoaction···或p.setDropdown···(设置显示位置);
5.使用Activity实现
在AndroidManifest.xml中修改Actity主题android:theme="@style/MyDialogStyleBottom"
滑出滑入动画
在values/styles.xml <style name="AnimBottom"> <item name="android:windowEnterAnimation">@anim/push_bottom_in</item> <item name="android:windowExitAnimation">@anim/push_bottom_out</item> </style>在anim/push_bottom_in.xml滑入式动画<set> <translate android:duration="200" android:fromYDelta="100%p" android:toYDelta="0"/> </set> 在anim/push_bottom_out.xml滑出式动画<set> <translate android:duration="200" android:fromYDelta="0" android:toYDelta="50%p" /> </set>
GitHub博客:http://lioil.win/2016/05/05/Dialog-Style.html
Coding博客:http://c.lioil.win/2016/05/05/Dialog-Style.html
0 0
- 对话框自定义的5种方法
- 2种方法自定义对话框
- 实现自定义对话框程序快捷键的两种方法
- 实现自定义对话框程序快捷键的两种方法
- 对话框或弹出自定义样式的3种方法
- InstallShield创建自定义对话框的基本方法
- InstallShield创建自定义对话框的基本方法
- InstallShield创建自定义对话框的基本方法
- InstallShield创建自定义对话框的基本方法
- Cocoa使用自定义对话框的方法
- Cocoa使用自定义对话框的方法
- VC对话框项目-自定义消息的方法
- Cocoa使用自定义对话框的方法
- AlertDialog创建6种对话框的用法 (对话框,单选对话框,多选对话框,列表对话框,自定义对话框,退出对话框)
- android 中Dialog对话框及自定义Dialog的方法
- 自定义对话框的三种方式(MadHouse)
- 自定义的JS对话框
- javascript自定义的对话框
- AndroidStudio中添加依赖的三种方式
- C语言习题 折半查找
- iOS 推送后台语音播报
- Java面试题-JVM
- linux之 更新update&upgrade&源
- 对话框自定义的5种方法
- 在tomcat上发布应用时遇到的几个常见错误
- 内部类相关——定义、匿名内部类、回调实现及静态内部类
- DC/PT 常用到的脚本:
- 动态列表效果
- 猜灯谜
- hive的like和rlike的区别
- 1095.Cars on Campus (30)...to be continued...
- zfphbdtfrrjlzxl