Android WebView 和 js 交互

1.WebView和Js交互方式

1.1 Android去调用JS的代码方式

  • 对于android调用JS代码的方法有2种:

    • 第一种方式已经不推荐使用了,第二种方式不仅更方便,也提供了结果的回调,但仅支持API 19以后的系统。
阅读更多

Android WebView 基础使用

1.关于WebView的使用优点

  • 可以直接显示和渲染web页面,直接显示网页
  • webview可以直接用html文件(网络上或本地assets中)作布局
  • 和JavaScript交互调用

2.WebView最简单的使用方法

阅读更多

Android DecorView 介绍

01.什么是DecorView

  • DecorView是FrameLayout的子类,它可以被认为是Android视图树的根节点视图。

    • DecorView作为顶级View,一般情况下它内部包含一个竖直方向的LinearLayout,在这个LinearLayout里面有上下三个部分,上面是个ViewStub,延迟加载的视图(应该是设置ActionBar,根据Theme设置),中间的是标题栏(根据Theme设置,有的布局没有),下面的是内容栏。
阅读更多

Android onAttachedToWindow 和 onDetachedFromWindow

01.这两个方法的作用分析

1.1 方法说明

  • 首先View没有明显的生命周期,onDetachedFromWindow()与onAttachedToWindow()方法相对应。
    • ViewGroup先是调用自己的onAttachedToWindow()方法,再调用其每个child的onAttachedToWindow()方法,这样此方法就在整个view树中遍布开了,而visibility并不会对这个方法产生影响。
阅读更多

Android 弹窗常见问题

1.DialogFragment使用中show()方法遇到的IllegalStateException

  • 报错日志如下:

    1
    lang.IllegalStateException: Can not perform this action after onSaveInstanceState at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1493)
阅读更多

Android Snackbar 源码分析

1.最简单创造方法

1.1 Snackbar作用

  • Snackbar是Android支持库中用于显示简单消息并且提供和用户的一个简单操作的一种弹出式提醒。当使用Snackbar时,提示会出现在消息最底部,通常含有一段信息和一个可点击的按钮。
  • 同样作为消息提示,Snackbar相比于Toast而言,增加了一个用户操作,并且在同时弹出多个消息时,Snackbar会停止前一个,直接显示后一个,也就是说同一时刻只会有一个Snackbar在显示;而Toast则不然,如果不做特殊处理,那么同时可以有多个Toast出现;Snackbar相比于Dialog,操作更少,因为只有一个用户操作的接口,而Dialog最多可以设置三个,另外Snackbar的出现并不影响用户的继续操作,而Dialog则必须需要用户做出响应,所以相比Dialog,Snackbar更轻量。
阅读更多

Android PopupWindow 源码分析

1.最简单的创建方法

1.1 PopupWindow构造方法

  • 如下所示

    1
    2
    3
    4
    5
    public PopupWindow (Context context)
    public PopupWindow(View contentView)
    public PopupWindow(int width, int height)
    public PopupWindow(View contentView, int width, int height)
    public PopupWindow(View contentView, int width, int height, boolean focusable)
阅读更多

Android Dialog 源码分析

1.简单用法

  • 一般都是在使用AlertDialog,但AlertDialog主要也是继承自Dialog。下面我们来分析分析Dialog源码。

  • 最简单用法如下所示

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    private AlertDialog alertDialog=null;
    public void showDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setIcon(R.mipmap.ic_launcher);
    builder.setMessage("潇湘剑雨");
    builder.setTitle("这个是标题");
    builder.setView(R.layout.activity_main);
    builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    alertDialog.dismiss();
    }
    });
    builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
    alertDialog.dismiss();
    }
    });
    alertDialog = builder.create();
    alertDialog.show();
    }
阅读更多

Android DialogFragment 源码分析

1.最简单的使用方法

1.1 官方建议

  • Android比较推荐采用DialogFragment实现对话框,它完全能够实现Dialog的所有需求,并且还能复用Fragment的生命周期管理,被后台杀死后,可以恢复重建。

1.2 最简单的使用方法

阅读更多

Android Toast 源码深度分析

1.最简单的创建方法

1.1 Toast构造方法

  • Toast只会弹出一段信息,告诉用户某某事情已经发生了,过一段时间后就会自动消失。它不会阻挡用户的任何操作。

  • Toast是没有焦点,而且Toast显示的时间有限,过一定的时间就会自动消失。

    • 通过new Toast(context)直接创建,除了将mContext = context,还有一步重要的操作,创建TN,下面会说到……
阅读更多