3

我目前正在建設中的android一個策劃的遊戲應用程序,我需要在連續定位6基色按鈕,但我有一些錯誤如何定位6個圖像按鈕的行中的活動

當前xml用於圖像按鈕的代碼:即出現

<ImageButton 
      android:layout_width="50px" 
      android:layout_height="40px" 
      android:id="@+id/selectblackpeg" 
      android:src="@mipmap/blackpeg" 
      android:layout_above="@+id/buttonMainMenu" 
      android:layout_alignRight="@+id/textGuesses" 
      android:layout_toLeftOf="@+id/selectyellowpeg" 
      android:layout_alignEnd="@+id/textGuesses" 
      android:layout_marginBottom="50dp" /> 

     <ImageButton 
      android:layout_width="50px" 
      android:layout_height="40px" 
      android:id="@+id/selectyellowpeg" 
      android:src="@mipmap/yellowpeg" 
      android:layout_toRightOf="@+id/selectblackpeg" 
      android:contentDescription="yellowpeg" 
      android:layout_alignTop="@+id/selectbluepeg" /> 

     <ImageButton 
      android:layout_width="50px" 
      android:layout_height="40px" 
      android:id="@+id/selectbluepeg" 
      android:src="@mipmap/bluepeg" 
      android:layout_toRightOf="@+id/selectyellowpeg" 
      android:layout_toEndOf="@+id/textGuesses" /> 

     <ImageButton 
      android:layout_width="50px" 
      android:layout_height="40px" 
      android:id="@+id/selectredpeg" 
      android:src="@mipmap/redpeg" 
      android:layout_toRightOf="@+id/selectbluepeg" 
      android:layout_toStartOf="@+id/buttonMainMenu" /> 

     <ImageButton 
      android:layout_width="50px" 
      android:layout_height="40px" 
      android:id="@+id/selectgreenpeg" 
      android:src="@mipmap/greenpeg" 
      android:layout_toLeftOf="@+id/selectredpeg" 
      android:layout_toStartOf="@+id/selectwhitepeg" /> 

     <ImageButton 
      android:layout_width="50px" 
      android:layout_height="40px" 
      android:id="@+id/selectwhitepeg" 
      android:src="@mipmap/whitepeg" 
      android:layout_alignLeft="@+id/selectgreenpeg" 
      android:layout_alignStart="@+id/selectyellowpeg" /> 

和錯誤信息是:

java.lang.IllegalStateException:循環依賴關係不能在 RelativeLayout的在存在個android.widget.RelativeLayout $ DependencyGraph.getSortedViews(RelativeLayout.java:1724) 在 android.widget.RelativeLayout.sortChildren(RelativeLayout.java:382) 在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:389) 在android.view.View.measure(View.java:18788)在 android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:715) 在android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461) 在android.view.View.measure(View.java:18788)在 android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 在android.widget.FrameLayout.onMeasure(FrameLayout.java:194)在 機器人。 support.v7.internal.widget.ContentFr ameLayout.onMeasure_Original(ContentFrameLayout.java:135) 在 android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java) 在android.view.View.measure(View.java:18788)在 機器人.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951) 在 android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure_Original(ActionBarOverlayLayout.java:393) 在 android.support.v7.internal.widget.ActionBarOverlayLayout .onMeasure(ActionBarOverlayLayout.java) at android.view.View.measure(View.java:18788)at android.widget.RelativeLayout.measureChildHorizo​​ntal(RelativeLayout.java:715) at android.widget.RelativeLayout.on措施(RelativeLayout.java:461) 在android.view.View.measure(View.java:18788)在 com.android.layoutlib.bridge.impl.RenderSessionImpl.measureView(RenderSessionImpl.java:470) 在 COM .android.layoutlib.bridge.impl.RenderSessionImpl.render(RenderSessionImpl.java:357) at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:428) at com.android.ide.common。 rendering.LayoutLibrary.createSession(LayoutLibrary.java:350) 在 com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:510) 在 com.android.tools.idea.rendering.RenderTask $ 2.compute(RenderTask.java:498) at com.intellij.openapi.application.impl.ApplicationImpl.runReadAction(ApplicationImpl.java:888) 在 com.android.tools.idea.rendering.RenderTask.createRenderSession(RenderTask.java:498) 在 com.android .tools.idea.rendering.RenderTask.access $ 600(RenderTask.java:72) 在 com.android.tools.idea.rendering.RenderTask $ 3.call(RenderTask.java:610) 在 com.android.tools .idea.rendering.RenderTask $ 3.call(RenderTask.java:607) at com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:366) at com.android.tools.idea。 rendering.RenderTask.render(RenderTask。Java的:607)在 com.android.tools.idea.rendering.RenderTask.render(RenderTask.java:629) 在 com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel $ 6.run(AndroidDesignerEditorPanel.java:480 )在在 com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:320)在 com.intellij.util.ui.update.MergingUpdateQueue $ 2.run(MergingUpdateQueue.java:254) 在 com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:269) 在 com.intellij.util.ui.update.MergingUpdateQueue.flush(MergingUpdateQueue.java:227) 在 com.intellij.util.ui.update.MergingUpdateQueue.run(MergingUpdateQueue.java:217) 在 com.intellij .util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:238) 處 java.util.concurrent.Executors $ RunnableAdapter.call com.intellij.util.Alarm $請求$ 1.run(Alarm.java:351)( Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266)在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在 java.util.concurrent中.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(線程。 Java的:745)

+0

,因爲你的定位是圓形的。 – justDroid

+0

一種觀點與第二種有關,第二種與第一種有關。循環依賴。一種死鎖的情況。 – Rohit5k2

回答

0

從控制刪除循環依賴。

<ImageButton 
     android:id="@+id/selectblackpeg" 
     android:layout_toLeftOf="@+id/selectyellowpeg"/> 

    <ImageButton 
     android:id="@+id/selectyellowpeg" 
     android:layout_toRightOf="@+id/selectblackpeg" /> 

你給Beheerder闕selectblackpeg將在剩下的selectyellowpegselectyellowpeg和將在selectblackpeg權。

給依賴於只有一個控制。

0

問題是造成的,因爲有在佈局參數的循環引用。

例如,圖B是layout_below當視圖,視圖可以不考慮B的下方,等等AlignRight引用了也這可以在多個視圖之間存在:參考的參考文獻乙C C在方案也可以因爲循環依賴的不即參考。

這種檢查,因爲它是這樣的問題: Circular dependencies cannot exist in RelativeLayout, android?

0

您的問題是,你正在創建循環依賴,它說在錯誤的第一道防線。您從第一到第二的ImageButton ImageButton的調用,並從闕第二個按鈕,你再次打電話來的第一個,讓參考循環。

android:layout_toLeftOf="@+id/selectyellowpeg"從第一的ImageButton

0

此異常刪除看來你使用的是相對父佈局。 這種循環依賴當你讓兩個孩子在相同的佈局互相依賴的發生。

消除這種依賴關係,請刪除以下一組和運行的android:layout_toLeftOf="@+id/selectyellowpeg"一個或android:layout_toRightOf="@+id/selectblackpeg"

<ImageButton 
     android:id="@+id/selectyellowpeg" 
     android:layout_toRightOf="@+id/selectblackpeg" /> 
0

你應該把按鈕水平LinerLayout

相關問題