2017-09-15 52 views
0

我正在构建一个应用程序,我试图在应用程序的底部设置智能admob横幅。在底部有一个FrameLayout,它将充当广告容器。错误的高度定位变化的观点

我有2个布局文件,一个纵向和一个景观。肖像之一包含一个FrameLayout,高度为50dp,风景区有32dp(根据谷歌的指导)。

这工作正常,但由于我的活动在onCreate中做了很多工作,我不得不在清单中的活动配置中添加android:configChanges="orientation|screenSize",以防止每次旋转设备时都调用onCreate。

但是,现在当我的看法转动时,FrameLayout里(adContainer的)保持50dp高。

我如何可以强制特定布局从方向变化的XML重绘,并得到正确的高度?

我试过在onConfigurationChanged无效的FrameLayout里,但我的布局还停留50dp高。谢谢

回答

1

通过设置configChanges你是在告诉你不想那么你被卡住只有一个纵向和横向布局,以自动切换布局系统。

你要么必须修复您的代码,以便它正常工作的方向改变或手动更改包含广告的备用尺寸\位置,当您旋转设备的视图。

最好的解决方案通常是让正确的定位过程启用重构你的代码。即不锁定configChanges属性。

https://developer.android.com/guide/topics/resources/runtime-changes.html

1

您可以使用setContentViewonConfigurationChanged切换布局

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setContentView(R.layout.activity_main); 
}