4

我正在尝试在android中旋转包含webview的框架布局,这是我的代码:

FrameLayout contentView = (FrameLayout) getRootView().findViewById(
                R.id.content);

FrameLayout backGround = new FrameLayout(getContext());

FrameLayout.LayoutParams bgfl = new FrameLayout.LayoutParams(
    FrameLayout.LayoutParams.FILL_PARENT,
    FrameLayout.LayoutParams.FILL_PARENT);

backGround.addView(WebView object);

contentView.addView(backGround, bgfl);

RotateAnimation r = new RotateAnimation(0f, -90f,Animation.RELATIVE_TO_SELF,0.5f, 

Animation.RELATIVE_TO_SELF,0.5f);

r.setDuration(0);

r.setFillAfter(true); 

LayoutAnimationController animController = new LayoutAnimationController(r, 0);

backGround.setLayoutAnimation(animController);

它可以旋转......但问题是webview中的任何可点击区域都不会根据布局的旋转坐标系改变它的坐标。webview的滚动也被反转了

有关如何解决此问题的任何建议

4

1 回答 1

0

我在动画运行时能够激活部分 UI 时遇到了类似的问题,即使那里“什么都没有”。RotateAnimation您使用的仅更新视图的视觉效果,所有sFrameLayout元素在其原始位置保持不变。

一种可能性是为您创建一个单独的布局,该布局FrameLayout设置为看起来像旋转后的视图。Activity可以通过实现Animation.AnimationListener并将实例化代码放入方法中来实例化此布局onAnimationEnd(Animation)

基于您的setDuration(int)值 0,看起来您甚至可能根本不关心查看动画视图。在这种情况下,您可以只用LayoutAnimation替换布局的代码替换开始您的代码。

于 2012-02-19T18:26:10.973 回答