Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在“活动”中的一行中放置6个图像按钮_Java_Android_Android Layout_Imagebutton_Android Imagebutton - Fatal编程技术网

Java 如何在“活动”中的一行中放置6个图像按钮

Java 如何在“活动”中的一行中放置6个图像按钮,java,android,android-layout,imagebutton,android-imagebutton,Java,Android,Android Layout,Imagebutton,Android Imagebutton,我目前正在android上构建一个mastermind游戏应用程序,我需要将6个底色按钮排成一行,但我有一些错误 图像按钮的当前xml代码: <ImageButton android:layout_width="50px" android:layout_height="40px" android:id="@+id/selectblackpeg" android:src="@mipmap/blac

我目前正在android上构建一个mastermind游戏应用程序,我需要将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:中不能存在循环依赖项 相对论 android.widget.RelativeLayout$DependencyGraph.GetSortedView(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.measureChildHorizontal(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)的 android.support.v7.internal.widget.ContentFrameLayout.onMeasure_Original(ContentFrameLayout.java:135) 在 android.support.v7.internal.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java) 在android.view.view.measure(view.java:18788)的 android.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) 在android.view.view.measure(view.java:18788)的 android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715) 在android.widget.RelativeLayout.onMeasure(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) 位于com.android.layoutlib.bridge.bridge.createSession(bridge.java:428) 在 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) 在 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) 在 com.android.tools.idea.rendering.RenderService.runRenderAction(RenderService.java:366) 在 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:320) 在 com.intellij.util.ui.update.MergingUpdateQueue.execute(MergingUpdateQueue.java:310) 在 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.runsafe(QueueProcessor.java:238) 在com.intellij.util.Alarm$Request$1.run(Alarm.java:351)中 Executors$RunnableAdapter.call(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) 运行(Thread.java:745)


从控件中删除循环依赖项

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

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

您已经指定,
selectblackpeg
将位于
selectyellowpeg
的左侧,
selectyellowpeg
将位于
selectblackpeg
的右侧


仅为一个控件提供依赖项。

由于布局参数中存在循环引用,因此导致此问题

例如,当视图B是视图A下方的布局_时,视图A不能再在其下方、右对齐等位置引用视图B。这也可能存在于多个视图之间:A引用B引用C。在该场景中,由于循环依赖关系,C不能引用A

检查此项,因为这是一个类似的问题:

错误的第一行指出,您的问题是您正在创建循环依赖关系。您从第一个imageButton调用第二个imageButton,然后从第二个按钮再次调用第一个按钮,进行循环引用


从第一个ImageButton中删除android:layout_toLeftOf=“@+id/selectyellowpeg”此异常似乎将相对布局用作父级。 当您使同一布局中的两个子项相互依赖时,就会出现这种循环依赖关系

若要删除此类依赖项,请删除
android:layout\u-toLeftOf=“@+id/selectyellowpeg”
android:layout\u-toRightOf=“@+id/selectblackpeg”
从下面的设置和运行。



您应该将按钮放在水平线布局中,因为您的对齐是圆形的。一个视图与第二个视图相关,第二个视图与第二个视图相关
    <ImageButton
        android:id="@+id/selectyellowpeg"
        android:layout_toRightOf="@+id/selectblackpeg" />