将图像添加到 gridlayout 会更改整个布局

Adding an image to gridlayout changes entire layout

我是 Android 开发的新手,所以我可能错过了一个简单的问题,但我正在尝试创建一个顶部有图像的登录屏幕。我的布局完全按照我想要的方式进行,除非我添加图像时整个布局都会发生变化。我添加了一个与 imageview (LoginPageCharity) 具有相同网格设置的文本框进行测试,它与文本框完美配合,但随后我将 imageview 更改为可见,将文本框 (textView1) 更改为消失,我的整个设置发生了变化。你能向我解释为什么会这样吗?如果可能的话,如何解决这个问题?先感谢您!这是两个布局和我的代码。

<?xml version="1.0" encoding="utf-8"?>
<GridLayout xmlns:p1="http://schemas.android.com/apk/res/android"
    p1:layout_width="match_parent"
    p1:layout_height="match_parent"
    p1:id="@+id/gridLayout1"
    p1:columnCount="6"
    p1:rowCount="10"
    p1:alignmentMode="alignBounds"
    p1:orientation="horizontal"
    p1:columnOrderPreserved="true"
    p1:rowOrderPreserved="true"
    p1:useDefaultMargins="false">
    <TextView
        p1:id="@+id/textView1"
        p1:enabled="true"
        p1:visibility="visible"
        p1:layout_column="0"
        p1:layout_columnSpan="6"
        p1:layout_columnWeight="6"
        p1:layout_row="0"
        p1:layout_rowSpan="3"
        p1:layout_rowWeight="3" />
    <TextView
        p1:id="@+id/textView2"
        p1:layout_column="0"
        p1:layout_columnSpan="1"
        p1:layout_columnWeight="1"
        p1:layout_row="5"
        p1:layout_rowSpan="1"
        p1:layout_rowWeight="0.3"
        p1:visibility="visible" />
    <Button
        p1:text="Log In"
        p1:id="@+id/button1"
        p1:layout_column="1"
        p1:layout_columnSpan="1"
        p1:layout_columnWeight="1"
        p1:layout_row="5"
        p1:layout_rowSpan="1"
        p1:layout_rowWeight="0.3" />
    <TextView
        p1:id="@+id/textView3"
        p1:layout_column="2"
        p1:layout_columnSpan="1"
        p1:layout_columnWeight="1"
        p1:layout_row="5"
        p1:layout_rowSpan="1"
        p1:layout_rowWeight="0.3" />
    <Button
        p1:text="Create Account"
        p1:id="@+id/button2"
        p1:layout_column="4"
        p1:layout_columnSpan="1"
        p1:layout_columnWeight="1"
        p1:layout_row="5"
        p1:layout_rowSpan="1"
        p1:layout_rowWeight="0.3" />
    <TextView
        p1:id="@+id/textView4"
        p1:layout_column="5"
        p1:layout_columnSpan="1"
        p1:layout_columnWeight="1"
        p1:layout_row="5"
        p1:layout_rowSpan="1"
        p1:layout_rowWeight="0.3" />
    <TextView
        p1:id="@+id/textView5"
        p1:layout_column="0"
        p1:layout_columnSpan="6"
        p1:layout_columnWeight="6"
        p1:layout_row="6"
        p1:layout_rowSpan="4"
        p1:layout_rowWeight="4" />
    <EditText
        p1:inputType="textPassword"
        p1:id="@+id/editText1"
        p1:layout_column="1"
        p1:layout_columnSpan="4"
        p1:layout_columnWeight="4"
        p1:layout_row="4"
        p1:layout_rowSpan="1"
        p1:text="Password" />
    <EditText
        p1:inputType="textEmailAddress"
        p1:id="@+id/editText2"
        p1:layout_column="1"
        p1:layout_columnSpan="4"
        p1:layout_columnWeight="4"
        p1:layout_row="3"
        p1:layout_rowSpan="1"
        p1:text="Username" />
    <ImageView
        p1:src="@drawable/redcross2"
        p1:id="@+id/LoginPageCharity"
        p1:layout_column="0"
        p1:layout_columnSpan="6"
        p1:layout_columnWeight="6"
        p1:layout_row="0"
        p1:layout_rowSpan="3"
        p1:layout_rowWeight="3"
        p1:scaleType="centerInside"
        p1:adjustViewBounds="true"
        p1:visibility="gone"
        p1:cropToPadding="true" />
</GridLayout>

我所做的是:

  1. 取出textView1因为只有"for bug testing".

  2. ImageViewvisibility属性拿出来,一直想显示出来

  3. 取出ImageViewweight属性。

这是结果:

这是你想要的吗?