我在我的应用中运行插页式广告,但我不确定如何预加载它们,以便用户看起来是即时的.通常它可能需要长达10秒,并且用户已经移动到应用程序的不同区域,这非常烦人.
这是应用程序的相关代码:
private void launchInterstitial() {
interstitialAd = new InterstitialAd(this);
interstitialAd.setAdUnitId("ca-app-pub-xxxxxxxxxxxxxxxx");
interstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
showAdInter();
}
@Override
public void onAdFailedToLoad(int errorCode) {
String message = String.format("onAdFailedToLoad (*a)", getErrorReason(errorCode));
}
@Override
public void onAdClosed() {
if (exitApp) {
finish();
}
}
});
}
private void showAdInter() {
if (interstitialAd.isLoaded()){
interstitialAd.show();
} else {
Log.d("","Interstitial ad failed to load");
}
}
public void loadInterstitial() {
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("Fxxxxxxxxxxxxxxxxxxxxx")
.build();
interstitialAd.loadAd(adRequest);
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试在活动启动时调用launchInterstitial()和loadInterstitial(),然后在我希望广告出现时调用showAdInter(),但它不会那样工作.
有人有主意吗?
我只需要有关对象和构造函数的简单课程。
var mapMarkers = {
key: null,
contactName: null,
location: null,
};
var markersArray = Object.keys(mapMarkers);
class Map extends Component {
renderMarker = ({ key, contactName, location }) => {
newMarker = new mapMarkers(key, contactName, location);
}
Run Code Online (Sandbox Code Playgroud)
对我来说反复出现的主题是,网上没有关于如何执行此操作的信息。我需要一个实际的工作示例才能遵循,理论是没有用的。
我想要做的是定义一个名为 mapMarkers 的对象类型,它具有自己的属性。然后我希望能够动态地创建该对象的实例并将它们填充到数组中。
最终目标是尝试使用该数组用标记填充我的地图。我得到的错误是:
newMarker = new mapMarkers(key, contactName, location);
Run Code Online (Sandbox Code Playgroud)
根据编译器的说法,这不是一个有效的构造函数。所以我想知道有效的构造函数是什么样的,因为网上的信息没有告诉我任何信息。
另外,什么是:
var markersArray = Object.keys(mapMarkers);
Run Code Online (Sandbox Code Playgroud)
实际上呢?键是否意味着当我实例化一个对象时它会自动填充该数组?或者我需要额外的步骤来执行此操作吗?
多谢你们。
编辑:建议的答案与我根本不相关,语言似乎不一样,而且我在可以编译和运行的任何地方都看不到工作示例。他们也没有尝试做与此处描述的相同的事情。
我有一个包含不同组件的屏幕,其中之一是 GridView.builder,无论我做什么,它都不会滚动。
我尝试了不同的方法,但没有任何效果,所以我将分享我目前正在尝试的方法:
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomPadding: false,
body: Container(
child: CustomScrollView(
slivers: <Widget>[
SliverList(
delegate: SliverChildListDelegate(
[
//Some widgets here, some images, some buttons. This section scrolls perfectly.
],
SliverList(
delegate: SliverChildListDelegate(
[
GridView.builder(
//physics: ScrollPhysics(),
shrinkWrap: true,
itemCount: imageURLlist.length,
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 1,
),
itemBuilder: (BuildContext context, int index) {
return ListView(
children: <Widget>[
Image.network(
imageURLlist[index],
height: 150,
width: MediaQuery.of(context).size.width * 0.5,
fit: BoxFit.fill,
),
],
);
}
),
),
],
),
],
), …Run Code Online (Sandbox Code Playgroud) 我只想使用代码更改 imageView 对象的颜色,但事实证明它比听起来要困难得多。
这是我的对象 xml:
<ImageView
android:id="@+id/lifeSquare"
android:layout_width="50dp"
android:layout_height="30dp"
android:background="#2a80b9"
android:visibility="invisible"
android:adjustViewBounds="false"
android:clickable="true"
android:cropToPadding="false"
android:padding="0dp"
android:scaleType="fitStart" />
Run Code Online (Sandbox Code Playgroud)
如您所见,它只是一个蓝色方块。我希望能够在代码中更改这一行:
android:background="#2a80b9"
Run Code Online (Sandbox Code Playgroud)
就是这样!我已经阅读了很多关于这个主题的帖子,最有希望的有以下解决方案:
View someView = findViewById(R.id.lifeSquare);
View root = someView.getRootView();
root.setBackgroundColor(Color.parseColor("#fffff"));
Run Code Online (Sandbox Code Playgroud)
但它不起作用。它只是让颜色完全保持原样。
有没有人以前做过这个,或者有更好的想法?
android ×2
arrays ×1
flutter ×1
gridview ×1
imageview ×1
interstitial ×1
layout ×1
object ×1
react-native ×1
scrollview ×1