我有一个具有拆分布局的平板电脑应用程序 - 左侧列表,右侧是详细信息窗格.右侧窗格是WebView,它包含一个<video>标记.这一切都运行正常,除了WebView的整个右侧被切断并呈现纯白色.
为什么它以这种方式呈现,如何在不插入大量黑客的情况下避免它?
我把它归结为一个简单的测试项目,我在github上发布了这个项目.
这是一个截图:http://d.pr/i/dfEh.
左侧的灰色区域是列表视图所属的位置.FrameLayout为简单起见,我将其更改为空. 沿web视图的右侧的切断部IS相同的宽度列表视图. 同样值得注意的是,视频下方的任何内容也都被截断 - 白色区域扩展了WebView的整个高度.
我试过的一些事情:
WebSettings:javascript,使用宽视口,使用概览模式加载WebViewClient和一个WebChromeClientView.setScrollBarStyle,WebView.setVerticalScrollBarOverlay和类似<video>高度/宽度属性和样式目前的解决方法:
我最后通过使用全屏WebView,在我的列表顶部覆盖我的列表视图,并在html中最外层容器元素上设置左边距来解决这个问题.这是相当hacky,并在各种密度和分辨率上获得列表视图的大小是容易出错的,所以我真的想以正确的方式解决这个问题.
摘录:
正如我所提到的,在github上发布了一个(非)工作测试床,但这里有重要的部分:
Html加载到WebView中(这是全部):
<html>
<head><title>Title</title></head>
<body style="margin:0">
<video x-webkit-airplay="allow" controls="controls" style="width:100%">
<source src="http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"></source>
</video>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
主要布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<fragment android:name="com.concentricsky.android.webviewvideotest.ListFragment"
android:id="@+id/item_list" …Run Code Online (Sandbox Code Playgroud) 我有一个PopupMenu固定在Action Bar中的按钮,我正在获取有关泄漏窗口的日志输出.
如果我的活动在PopupMenu打开时停止,则会发生这种情况.
我在这里发布了一个相关问题,但我已经解决了这个问题.
我已经看到了一些类似的问题,像这样,但没有涉及到PopupMenu.
我想我是否可以处理上面提到的那些PopupWindow$PopupViewContainer我可以从WindowManageronPause或类似的东西中删除它,但我不知道如何得到它.暴露的界面PopupMenu非常有限.
PopupMenu的View还是Window?这就是我创建菜单的方法:
// in Activity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
final MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
MenuItem login = menu.findItem(R.id.menu_login);
final Button button = (Button) login.getActionView().findViewById(R.id.login);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View item) {
if (profileMenu == null) {
// I've tried passing getApplicationContext() here too, with …Run Code Online (Sandbox Code Playgroud) 我从REST服务中提取了一个类别和项目树.类别具有"子"属性,该属性包含类别和/或项目列表.它们的类型在"kind"字段中指定.
杰克逊的多态类型处理很棒,并且所有工作都按预期工作,除了一个小故障:"种类"字段本身没有填充.有没有一种简单的方法可以将这些数据输入pojos?我希望不必编写自定义反序列化器.
这是Category和Item的基类.这两个子类添加了几个标量字段,并不是很有趣.
@JsonIgnoreProperties(ignoreUnknown=true)
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "kind",
defaultImpl = EntityBase.Impl.class
)
@JsonSubTypes({
@Type(value = Item.class, name = "Item"),
@Type(value = Category.class, name = "Category")
})
public abstract class EntityBase {
String title;
String kind;
public void setTitle(String title) { this.title = title; }
public String getTitle() { return title; }
public void setKind(String kind) { this.kind = kind; }
public String getKind() { return kind; }
public static class Impl extends EntityBase {} …Run Code Online (Sandbox Code Playgroud) 我使用PyXB从java/spring平台生成Python模块,该平台通过RESTfull API以XSD格式公开其类模式.
我现在能够使用那些PyXB绑定类/模块解析同一平台所服务的XML数据.
我的问题是:
我们正在开发一个带有一些地图功能的应用程序
<uses-library android:name="com.google.android.maps" />
Run Code Online (Sandbox Code Playgroud)
在清单中.它在Xoom和Galaxy Tab以及几部手机上运行良好.它也适用于其中一个Google API模拟器.安装到Kindle Fire时,我们得到了
[2011-12-20 16:25:04 - android] Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
[2011-12-20 16:25:04 - android] Please check logcat output for more details.
[2011-12-20 16:25:04 - android] Launch canceled!
Run Code Online (Sandbox Code Playgroud)
同
E/PackageManager( 1385): Package <package> requires unavailable shared library com.google.android.maps; failing!
W/PackageManager( 1385): Package <package> couldn't be installed.
D/AndroidRuntime(12606): Shutting down VM
Run Code Online (Sandbox Code Playgroud)
这篇文章:https://stackoverflow.com/a/4509787/931277确认我开始怀疑的是,设备中确实缺少所需的api.
有没有办法将这个库包含在应用程序中,而不是依赖于它包含在设备上的Android版本中?
android ×3
binding ×1
django ×1
google-maps ×1
html5-video ×1
jackson ×1
java ×1
kindle-fire ×1
memory-leaks ×1
popupmenu ×1
pyramid ×1
schema ×1
xml ×1