2017-02-10 49 views
0

我想創建一個帶兩行兩列的靜態GridLayout。在最後一行中,一個按鈕應該位於兩列中間。相反,按鈕似乎只在右側立柱爲中心:(我伸出按鈕的高度,這樣的不對稱性會比較明顯)爲什麼我無法將按鈕置於Android GridLayout的兩列之間?

enter image description here

我預計Button元素中的這些屬性使其中心橫跨兩列:

 android:layout_column="0" 
     android:layout_columnSpan="2" 
     android:layout_gravity="center_horizontal" 

這裏是我的完整佈局:

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:columnCount="2" 
    android:rowCount="2"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_row="0" 
     android:layout_column="0" 
     android:text="Title: " /> 
    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_row="0" 
     android:layout_column="1"/> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:text="@string/search" 
     android:layout_row="1" 
     android:layout_column="0" 
     android:layout_columnSpan="2" 
     android:layout_gravity="center_horizontal"/> 
</GridLayout> 

如何將元素置於多個列中間?

回答

1

以前的答案看起來好像沒什麼問題,但或者你可以在一個線性佈局圍住按鈕,這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:columnCount="2" 
    android:rowCount="2"> 


    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_row="0" 
     android:text="Title: " /> 

    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_column="1" 
     android:layout_row="0" 
     android:text="hello world" /> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_column="0" 
     android:layout_row="1" 
     android:layout_columnSpan="2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <Button android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="test buttontest buttontest button" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="1" /> 
    </LinearLayout> 

</GridLayout> 

這應該做你的目標是什麼:

result

+0

這使得總的感覺,它的作品。非常感謝。 –

0

enter image description here試試這個

<?xml version="1.0" encoding="utf-8"?> 

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:columnCount="2" 
android:rowCount="2"> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_row="0" 
    android:text="Title: " /> 

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_row="0" 
    android:text="hello world" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_columnSpan="2" 
    android:layout_gravity="center_vertical|center_horizontal" 
    android:layout_row="1" 
    android:text="search" /></GridLayout> 
+0

謝謝,但臨時工t也偏離中心,至少在我的系統上。這不太明顯,因爲按鈕不夠高。當我用一個更長的字符串替換「Title:」時,我可以看到它偏離中心。 –

相關問題