2017-11-17 208 views
1

我是新開發的Android開發人員,所以我可能錯過了一個簡單的問題,但我試圖創建一個帶有頂部圖像的登錄屏幕。我的佈局完全符合我的要求,除了添加圖像時整個佈局發生變化。我已經添加了與imageview(LoginPageCharity)相同的網格設置的文本框進行測試,它與文本框完美配合,但是隨後我將imageview更改爲可見文本框(textView1),我的整個設置更改。你能向我解釋爲什麼這是,如果可能的話,如何補救?先謝謝你!這是兩個佈局和我的代碼。添加圖片到網格佈局會改變整個佈局

The layout I want Layout after image

<?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

我所做的是:

  1. 取出textView1,因爲它僅僅是 「爲錯誤檢測」。

  2. 取出ImageViewvisibility屬性,因爲您始終想要顯示它。

  3. 取出ImageViewweight屬性。

這是結果:

enter image description here

這是你想要的嗎?

+0

我不認爲我解釋得很好。我希望我的照片能夠被看到,並且我希望它被放在與(textView1)相同的區域。但是,當我將圖像添加到我的imageView框(其具有與textView1框相同的網格尺寸)時,網格會發生變化。 textView1僅在這裏進行錯誤測試。我希望這張圖片可以在我的登錄頁面上方看到,而不必更改格式。 我使用的圖像在這裏找到:https://tribkiah.files.wordpress.com/2017/08/redcross2.jpg?quality=85&strip=all&w=770 –

+0

如何把圖片放在'GridLayout'上面, ? – kalabalik

+0

使用你的圖片,我明白你的意思...... – kalabalik