1.[Android]CoordinatorLayout 与 Behavior
2.安卓原生和js交互的交交互4种方式 java和js交互 安卓JsBridge原理解析
[Android]CoordinatorLayout 与 Behavior
CoordinatorLayout是一种增强版的FrameLayout,主要应用于构建具有交互效果的互源布局。它的规范使用场景通常包括与AppBarLayout、CollapsingToolbarLayout和Toolbar的交交互结合,为应用增添更多的互源动态与交互性。布局结构的规范源码3000示意图如下所示,显示了这些组件之间的交交互关系。
在CoordinatorLayout中,互源几个常用的规范属性和布局元素被提及,如app:layout_behavior、交交互app:layout_anchor、互源app:layout_anchorGravity等。规范cad源码变成乱码app:layout_behavior用于指定子视图的交交互行为,而app:layout_anchor和app:layout_anchorGravity则用于指定锚点和布局重心。互源
AppBarLayout通常作为CoordinatorLayout的规范直接子类使用,其子视图通过设置自身的scrollFlags来实现期望的滑动行为。如果将AppBarLayout放置在普通的ViewGroup中而非CoordinatorLayout中,其功能将不会生效。
CollapsingToolbarLayout是一个实现了折叠功能的视图,用于包裹Toolbar,并作为AppBarLayout的子视图使用。它提供了折叠模式、内容遮罩等功能,裂变分享网站源码为应用提供更具吸引力的界面体验。
Behavior是用于协调CoordinatorLayout内子视图交互的关键概念。如果要对CoordinatorLayout内部的滑动视图进行特定交互操作,需要设置Behavior。默认情况下,CoordinatorLayout内部的滑动视图已提供了相应的Behavior,如设置为app:layout_behavior="@string/appbar_scrolling_view_behavior"。
Behavior的方法分为几类:布局相关、事件处理、滑动事件、以及依赖于特定View的bs主图源码方法。了解这些方法在自定义Behavior时至关重要。
CoordinatorLayout与Behavior的关系在源码层面体现为,CoordinatorLayout在处理测量、布局、触摸事件时会调用Behavior的相关方法。这使得Behavior能够影响子视图的行为,实现更复杂且定制化的交互效果。
CoordinatorLayout实现了NestedScrollingParent2接口,支持嵌套滑动。在处理嵌套滑动时,CoordinatorLayout会将滑动事件分发至相应的app宣传psd源码Behavior方法,如onStartNestedScroll、onInterceptTouchEvent等,从而实现层次化的滑动处理。
在处理AppBarLayout的滑动时,可以自定义AppBarStateChangeListener来监听其状态变化,例如展开、折叠和闲置状态,并相应地调整布局。
值得注意的是,正确使用CoordinatorLayout与Behavior需要深入理解其工作原理和方法,以充分利用它们提供的功能和特性,从而实现更丰富、更流畅的用户界面和交互体验。
安卓原生和js交互的4种方式 java和js交互 安卓JsBridge原理解析
JsBridge是实现Android与JavaScript交互的流行方式,共有四种方法可以实现数据传递。第一种方法是通过`addJavascriptInterface`实现JS调用Android。此方法使用`public void addJavascriptInterface(Object object, String name) { }`,其中`object`为Android对象,`name`为其别名。例如,`webview.addJavascriptInterface(JavaH5Activity.this, "androidObject");`将JavaH5Activity实例命名为androidObject传递给JS。在JS中调用时,使用`window.androidObject.androidMethod();`获取Android传递的数据。示例代码展示了JS和Android运行效果与日志输出。
第二种方法是`shouldOverrideUrlLoading`,允许JS通过重定向触发Android拦截,解析URL中的数据,并指挥Android执行相应操作。简单的重定向代码和URL编码示例展示了如何将数据传递给Android。打印结果验证了数据解析和执行情况。
第三种方法是通过`loadUrl`实现Android调用JS。示例代码展示了如何将数据`jsonParams`传递给JS并显示在H5页面上。通过修改JS代码中的注释,演示了请求重定向的问题,随后介绍了一种方法来弥补这一缺陷。
第四种方法是`evaluateJavascript`,允许Android调用JS代码,实现数据双向传递。示例代码与运行结果展示了其功能,通过日志输出验证了数据的交互过程。
JSBridge原理简述为:它是一座由JavaScript构建的桥梁,替代WebView自带的接口,提供灵活、安全的Android与JS交互机制。它允许根据预约定的规则通知Native执行特定操作,实现两者的交互。
若有编程疑问,欢迎私信我,我会尽快解答。我是编程小石头,一名全栈开发者,分享编程经验与心得,希望帮助后来者少走弯路。关注我,获取更多干货分享。