1

我和这个人的情况类似: 当 setContentView() 用于 Surfaceview 时实现 Admob 横幅

我的“sGame”创建了一个我想要的横向视图游戏,并在顶部放置了一个 admob 广告。

我认为答案会起作用,但我不确定要为“layout.setLayoutParams”导入哪个 LayoutParams。

当我在 LayoutParams 上按 Alt+Enter 时,我得到以下选项:

import android.view.ViewGroup.LayoutParams;
import android.widget.AbsoluteLayout.LayoutParams;
import android.widget.LinearLayout.LayoutParams;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.FrameLayout.LayoutParams;
import android.widget.GalleryLayout.LayoutParams;
import android.support.v7.widget.LinearLayoutCompat.LayoutParams;
//... quite a few more options
4

2 回答 2

0

这取决于layout.

从链接来看,它是一个RelativeLayout,所以你需要 import android.widget.RelativeLayout.LayoutParams

于 2015-09-27T03:35:47.857 回答
0

不同的布局管理器使用不同的布局参数。这很明显:RelativeLayoutuses RelativeLayout.LayoutParamsLinearLayoutusesLinearLayout.LayoutParams等。

这意味着,您需要使用 RelativeLayout.LayoutParams

import android.widget.RelativeLayout.LayoutParams;

因为在您提到的链接中,答案告诉您使用RelativeLayout.

现在,让我给你一些额外的信息。如果你使用了错误的参数怎么办?一个InvalidCastException被抛出。当您遇到该异常时,您可能会知道出了什么问题。您使用了错误类型的参数。Android 正在尝试将这种类型的参数转换为正确的类型!

于 2015-09-27T04:35:34.257 回答