【发布时间】:2011-11-28 19:33:07
【问题描述】:
在 Gmail 对话视图中使用 hierarchyviewer 会显示一个有趣且不寻常的布局层次结构:
-
单个对话中的所有消息都在单个 WebView(特别是
com.google.android.gm.CustomWebView,见左侧)中呈现。仅呈现消息的正文 - 标头所在的空格留空。 - WebView 顶部覆盖了一个
com.google.android.gm.MessageHeaderScrollView(见右侧),它使用HybridConversationScrollContainer将MessageHeaderView定位在对话视图中每条消息的正确位置。
那么,这是如何(以及为什么)实现的? Android 开发人员是否可以并且应该渴望在自己的应用中重新创建它?
显然为什么可能是性能 - WebView 使用消息文本的快速原生 WebKit 呈现,单个 WebView 可能比每个消息的单独 WebView 更有效。如果有人看到任何关于性能优势的优秀博文,我会很感兴趣。
然而,这种方法存在明显的复杂性成本(相对于天真地使用带有一些 TextView 的 ExpandableListView 或其他) - HybridConversationScrollContainer 必须以某种方式确定消息头应该通过网络渲染的位置,为了正确定位它的MessageHeaderViews。我想知道的是:如何计算出这些偏移量?
【问题讨论】:
标签: android webkit webview scroll overlay