通过全屏的dialog做浮层

浮层是我们很多app里常见的展示说明信息的部分

  • 为什么不用activity,activity会触发上一个activity的生命周期,太重量级了。
  • 当然也有些人用一个隐藏的view,等到显示浮层的时候再把它展示出来,这种会占用一些资源,虽然view不显示不会渲染但是也会占内存。

1. 创建一个全屏的Theme

<style name="my_tip_dialog" parent="android:Theme">
    <item name="android:windowFullscreen">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
</style>

这里设置了全屏,没有title,以及透明背景,透明背景是为了有些ui需要半透明的浮层。

2. 然后创建一个dialog继承Dialog

public class MyTipDialog extends Dialog {

   
    private Context context;

    private MyData myData;


    public CamelMileageTipDialog(@NonNull Context context, MyData myData) {
        super(context, R.style.pub_fw_Theme_Dialog_Router);//设置them
        this.context = context;
        this.myData = myData;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);//设置全屏
        setContentView(R.layout.atom_flight_dialog_camel_mileage_tips);
    }
}
  • 在构造函数的时候设置我们刚刚创建的Theme
  • 在oncreate的时候设置一下全屏
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容