我试图使用谷歌Android游戏样本,但游戏有一个活动和单个xml布局。
XML有许多linearlayout,每个代表游戏中的一个屏幕。例如,如果我单击“播放”按钮,活动将禁用所有可见性布局,并启用“播放屏幕”布局以提高可见性。
我无法分离主要活动,因为它导致我的项目中存在许多问题(与活动共享可用物品)。所以我认为我需要保持一个活动和一个xml。
主要问题是在android studio中我看不到xml的设计。 底线我想用android studio轻松设计我的游戏并继续使用我的示例项目。
任何想法让我的生活更轻松吗?
非常感谢!
com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'libgdx64.so' for target: Linux, 64-bit
at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:118)
at com.badlogic.gdx.utils.GdxNativesLoader.load(GdxNativesLoader.java:34)
at tester.ExampleGame.initGame(ExampleGame.java:94)
at display.Display.loop(Display.java:218)
at display.Display.run(Display.java:116)
at display.Display.<init>(Display.java:95)
at tester.ExampleGame.<init>(ExampleGame.java:56)
at tester.ExampleGame.main(ExampleGame.java:60)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Unable to read file for extraction: libgdx64.so
at com.badlogic.gdx.utils.SharedLibraryLoader.readFile(SharedLibraryLoader.java:126)
at com.badlogic.gdx.utils.SharedLibraryLoader.loadFile(SharedLibraryLoader.java:261)
at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:115)
... 7 more
编辑 - 我解决了这个问题,我只需要在布局中添加<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!-- SIGN-IN SCREEN -->
<LinearLayout android:id="@+id/screen_sign_in" style="@style/LLScreen">
<TextView style="@style/GameTitle" />
<TextView style="@style/GameBlurb" />
<Button android:id="@+id/button_single_player"
style="@style/MainScreenButton"
android:text="@string/single_player" />
<com.google.android.gms.common.SignInButton android:id="@+id/button_sign_in"
style="@style/SignInButton" />
</LinearLayout>
<!-- MAIN SCREEN -->
<LinearLayout android:id="@+id/screen_main" style="@style/LLScreen">
<TextView style="@style/GameTitle" />
<Button android:id="@+id/button_single_player_2"
style="@style/MainScreenButton"
android:text="@string/single_player" />
<TextView style="@style/MainScreenButtonBlurb"
android:text="@string/single_player_explanation" />
<Button android:id="@+id/button_quick_game"
style="@style/MainScreenButton"
android:text="@string/quick_game" />
<TextView style="@style/MainScreenButtonBlurb"
android:text="@string/quick_game_explanation" />
<Button android:id="@+id/button_invite_players"
style="@style/MainScreenButton"
android:text="@string/invite_players" />
<TextView style="@style/MainScreenButtonBlurb"
android:text="@string/invite_players_explanation" />
<Button android:id="@+id/button_see_invitations"
style="@style/MainScreenButton"
android:text="@string/see_invitations" />
<TextView style="@style/MainScreenButtonBlurb"
android:text="@string/see_invitations_explanation" />
<Button android:id="@+id/button_sign_out"
style="@style/SignOutButton"
android:text="@string/sign_out" />
</LinearLayout>
<!-- INVITATION POPUP -->
<LinearLayout android:id="@+id/invitation_popup" style="@style/InvPopup">
<TextView android:id="@+id/incoming_invitation_text" style="@style/InvPopupText" />
<Button android:id="@+id/button_accept_popup_invitation"
style="@style/InvPopupButton"
android:text="@string/accept_popup_invite" />
</LinearLayout>
<!-- "PLEASE WAIT" SCREEN -->
<LinearLayout android:id="@+id/screen_wait" style="@style/LLScreen">
<TextView style="@style/Blurb" android:text="@string/please_wait" />
</LinearLayout>
<!-- GAMEPLAY SCREEN -->
<LinearLayout android:id="@+id/screen_game" style="@style/LLScreen">
<TextView android:id="@+id/instructions"
style="@style/Instructions" android:text="@string/instructions" />
<TextView android:id="@+id/my_score" style="@style/ScoreDisplay" />
<Button android:id="@+id/button_click_me"
style="@style/GameButton"
android:text="@string/click_me"
android:layout_marginBottom="20dp" />
<TextView android:id="@+id/countdown" style="@style/FigureLabel" />
<LinearLayout style="@style/ScoresBox">
<TextView android:id="@+id/score0" style="@style/ScoreText" />
<TextView android:id="@+id/score1" style="@style/ScoreText" />
<TextView android:id="@+id/score2" style="@style/ScoreText" />
<TextView android:id="@+id/score3" style="@style/ScoreText" />
</LinearLayout>
</LinearLayout>
</FrameLayout>
。感谢。
答案 0 :(得分:1)
要避免嵌套布局,您应该使用ConstraintLayout
代替。
它允许您将每个View
与基于其他Views
的规则对齐,甚至可以基于父布局。
但要使用它,您必须在gradle.build
文件中添加依赖项:
dependencies {
compile 'com.android.support.constraint:constraint-layout:1.0.2'
}
全局gradle文件中的Maven Repository
:
repositories {
maven {
url 'https://maven.google.com'
}
}
以下是一个示例:
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView6"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="16dp" />
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView33"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toRightOf="@+id/imageView6"
android:layout_marginLeft="16dp" />
<TextView
android:text="TextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView34"
app:layout_constraintRight_toRightOf="@+id/textView33"
android:layout_marginTop="8dp"
app:layout_constraintTop_toBottomOf="@+id/textView33" />
要了解更多信息:
https://developer.android.com/training/constraint-layout/index.html
https://codelabs.developers.google.com/codelabs/constraint-layout/index.html
答案 1 :(得分:0)
您将根布局id
置于评论中,这就是您没有看到任何内容的原因。
在第二行删除FrameLayout
。
答案 2 :(得分:0)
我解决了这个问题,我只需要在布局中添加android:visibility =“visible”。感谢。