Jac*_*ień 8 android google-play-services google-play-games
我正在使用开发人员文档中的这个简单方法解锁成就:
Games.Achievements.unlock(getApiClient(), "my_achievement_id");
Run Code Online (Sandbox Code Playgroud)
成就解锁,但没有弹出窗口显示.登录Google Play游戏时也没有弹出窗口 - 已连接.
Jac*_*ień 15
我一直在努力解决这个问题,这就是为什么决定在stackoverflow上分享它.我在开发人员的博客上描述了对此问题的简单修复.
这是简短的版本:
只需向要显示成就的布局添加视图,如下所示:
<FrameLayout
android:id="@+id/gps_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp" />
Run Code Online (Sandbox Code Playgroud)
准备好布局后,您需要在Activity或Fragment中执行此操作:
Games.setViewForPopups(getApiClient(), findViewById(R.id.gps_popup));
Run Code Online (Sandbox Code Playgroud)
您必须确保您的GoogleApiClient已连接,否则您的应用将崩溃.
<FrameLayout
android:id="@+id/gps_popup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="20dp" />
Run Code Online (Sandbox Code Playgroud)
这与JacekKwiecień的答案相同
GamesClient gamesClient = Games.getGamesClient(MainActivity.this, GoogleSignIn.getLastSignedInAccount(context));
gamesClient.setViewForPopups(findViewById(R.id.gps_popup));
Run Code Online (Sandbox Code Playgroud)
这已更改,因为不推荐使用带有2个参数的setViewForPopups.
Jacek 和 user3782779 的答案对我不起作用,我必须执行以下操作:
GamesClient gamesClient = Games.getGamesClient(this, GoogleSignIn.getLastSignedInAccount(this));
gamesClient.setViewForPopups(findViewById(android.R.id.content));
gamesClient.setGravityForPopups(Gravity.TOP | Gravity.CENTER_HORIZONTAL);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2196 次 |
| 最近记录: |