2013-09-16 45 views
1

首先,我感謝大家的幫助。Android GridLayout設計

所以我的問題通常很簡單,但我找不到錯誤。

我想有這種形式:

image 1

作爲對這種接口適用於平板電腦,所以我想在表中同一界面7.0英寸和10.1英寸的佈局,除了相同的大小在中東主要佈局將有四個版面大小

但我當前的代碼我收到此表格:

image 2

這裏是我當前的代碼:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
     android:layout_gravity="fill_vertical|fill_horizontal" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 
<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
    android:columnCount="4" 
    android:rowCount="4" > 
     <LinearLayout 
      android:layout_width="242dp" 
      android:layout_height="wrap_content" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:background="@drawable/aze" 
      android:padding="2dp" > 
    </LinearLayout> 
    <GridLayout 
     android:layout_columnSpan="2" 
    android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="1" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
     android:columnCount="3" 
     android:rowCount="2" > 
     <Button 
      android:id="@+id/button2" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="181dp" 
      android:layout_height="71dp" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:text="Button" /> 
     <Button 
      android:id="@+id/button13" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="170dp" 
      android:layout_height="wrap_content" 
      android:layout_column="1" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:text="Button" /> 
     <Button 
      android:id="@+id/button14" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="2" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:text="Button" /> 
     <Button 
      android:id="@+id/button15" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="1" 
      android:text="Button" /> 
     <Button 
      android:id="@+id/button16" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
       android:layout_column="1" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="1" 
      android:text="Button" /> 
     <Button 
      android:id="@+id/button17" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="2" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="1" 
      android:text="Button" /> 
    </GridLayout> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="3" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:background="@drawable/c" 
      android:orientation="vertical" 
      android:padding="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="2dp" 
      android:paddingRight="2dp" 
      android:paddingTop="2dp" > 
    </LinearLayout> 
     <CalendarView 
      android:id="@+id/calendarView1" 
      android:layout_width="wrap_content" 
      android:layout_height="141dp" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_margin="2dp" 
      android:layout_marginBottom="2dp" 
      android:layout_marginLeft="2dp" 
      android:layout_marginRight="2dp" 
      android:layout_marginTop="2dp" 
      android:layout_row="1" 
      android:orientation="vertical" 
      android:padding="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="2dp" 
      android:paddingRight="2dp" 
      android:paddingTop="2dp" /> 
    <LinearLayout 
     android:layout_width="550dp" 
     android:layout_height="265dp" 
     android:layout_column="1" 
     android:layout_columnSpan="2" 
     android:layout_gravity="fill_vertical|fill_horizontal" 
     android:layout_margin="2dp" 
     android:layout_marginBottom="2dp" 
     android:layout_marginLeft="2dp" 
     android:layout_marginRight="2dp" 
     android:layout_marginTop="2dp" 
     android:layout_row="1" 
     android:layout_rowSpan="2" 
     android:background="@drawable/pp" 
     android:orientation="vertical" 
     android:padding="2dp" 
     android:paddingBottom="2dp" 
     android:paddingLeft="2dp" 
     android:paddingRight="2dp" 
     android:paddingTop="2dp" > 
    </LinearLayout> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="3" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_margin="2dp" 
      android:layout_marginBottom="2dp" 
      android:layout_marginLeft="2dp" 
      android:layout_marginRight="2dp" 
      android:layout_marginTop="2dp" 
      android:layout_row="1" 
      android:background="@drawable/titre" 
      android:orientation="vertical" 
      android:padding="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="2dp" 
      android:paddingRight="2dp" 
      android:paddingTop="2dp" > 
    </LinearLayout> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_margin="2dp" 
      android:layout_marginBottom="2dp" 
      android:layout_marginLeft="2dp" 
      android:layout_marginRight="2dp" 
      android:layout_marginTop="2dp" 
      android:layout_row="2" 
      android:background="@drawable/a" 
      android:orientation="vertical" 
      android:padding="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="2dp" 
      android:paddingRight="2dp" 
      android:paddingTop="2dp" > 
    </LinearLayout> 
     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="3" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_margin="2dp" 
      android:layout_marginBottom="2dp" 
      android:layout_marginLeft="2dp" 
      android:layout_marginRight="2dp" 
      android:layout_marginTop="2dp" 
      android:layout_row="2" 
      android:background="@drawable/titre" 
      android:orientation="vertical" 
      android:padding="2dp" 
      android:paddingBottom="2dp" 
      android:paddingLeft="2dp" 
      android:paddingRight="2dp" 
      android:paddingTop="2dp" > 
    </LinearLayout> 
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_gravity="fill_vertical|fill_horizontal" 
    android:layout_margin="2dp" 
    android:layout_marginBottom="2dp" 
    android:layout_marginLeft="2dp" 
    android:layout_marginRight="2dp" 
    android:layout_marginTop="2dp" 
    android:layout_row="3" 
    android:background="@drawable/b" 
    android:orientation="vertical" 
    android:padding="2dp" 
    android:paddingBottom="2dp" 
    android:paddingLeft="2dp" 
    android:paddingRight="2dp" 
    android:paddingTop="2dp" > 
    </LinearLayout> 
<LinearLayout 
    android:layout_width="276dp" 
    android:layout_height="wrap_content" 
    android:layout_column="1" 
    android:layout_gravity="fill_vertical|fill_horizontal" 
    android:layout_margin="2dp" 
    android:layout_marginBottom="2dp" 
    android:layout_marginLeft="2dp" 
    android:layout_marginRight="2dp" 
    android:layout_marginTop="2dp" 
    android:layout_row="3" 
    android:background="@drawable/titre" 
    android:orientation="vertical" 
    android:padding="2dp" 
    android:paddingBottom="2dp" 
    android:paddingLeft="2dp" 
    android:paddingRight="2dp" 
    android:paddingTop="2dp" > 
    </LinearLayout> 
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="2" 
    android:layout_gravity="fill_vertical|fill_horizontal" 
    android:layout_margin="2dp" 
    android:layout_marginBottom="2dp" 
    android:layout_marginLeft="2dp" 
    android:layout_marginRight="2dp" 
    android:layout_marginTop="2dp" 
    android:layout_row="3" 
    android:background="@drawable/titre" 
    android:orientation="vertical" 
    android:padding="2dp" 
    android:paddingBottom="2dp" 
    android:paddingLeft="2dp" 
    android:paddingRight="2dp" 
    android:paddingTop="2dp" > 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="3" 
       android:layout_gravity="fill_vertical|fill_horizontal" 
     android:layout_margin="2dp" 
     android:layout_marginBottom="2dp" 
     android:layout_marginLeft="2dp" 
     android:layout_marginRight="2dp" 
     android:layout_marginTop="2dp" 
     android:layout_row="3" 
     android:background="@drawable/titre" 
     android:orientation="vertical" 
     android:padding="2dp" 
     android:paddingBottom="2dp" 
     android:paddingLeft="2dp" 
     android:paddingRight="2dp" 
     android:paddingTop="2dp" > 
    </LinearLayout> 
</GridLayout> 
</LinearLayout> 

我使用而不是使用一個網格佈局的網格佈局

回答

2

,你應該使用的LinearLayout,並使用android:weightSum屬性。這將允許您構建您的佈局,以擴展到任何設備。

您可以像

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="fill_vertical|fill_horizontal" 
    android:layout_weight=".7" 
    android:padding="2dp" > 
</LinearLayout> 

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1.6" 
    android:orientation="vertical" 
    android:weightSum="3" > 

    <GridLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_column="1" 
     android:layout_columnSpan="2" 
     android:layout_gravity="fill_vertical|fill_horizontal" 
     android:layout_row="0" 
     android:layout_weight="1.1" 
     android:columnCount="3" 
     android:rowCount="2" > 

     <Button 
      android:id="@+id/button2" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="181dp" 
      android:layout_height="71dp" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:text="Button" /> 

     <Button 
      android:id="@+id/button13" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="170dp" 
      android:layout_height="wrap_content" 
      android:layout_column="1" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:text="Button" /> 

     <Button 
      android:id="@+id/button14" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="2" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="0" 
      android:text="Button" /> 

     <Button 
      android:id="@+id/button15" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="0" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="1" 
      android:text="Button" /> 

     <Button 
      android:id="@+id/button16" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="1" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="1" 
      android:text="Button" /> 

     <Button 
      android:id="@+id/button17" 
      style="?android:attr/buttonStyleSmall" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_column="2" 
      android:layout_gravity="fill_vertical|fill_horizontal" 
      android:layout_row="1" 
      android:text="Button" /> 
    </GridLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight=".8" 
     android:background="@android:color/holo_orange_light" 
     android:orientation="vertical" > 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1.1" 
     android:orientation="horizontal" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@android:color/holo_blue_bright" > 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:background="@android:color/holo_green_light" > 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

<LinearLayout 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="fill_vertical|fill_horizontal" 
    android:layout_weight=".7" > 
</LinearLayout> 

用下面的佈局,你有三列,那麼你就可以開始把事情的線性佈局做同樣的事情裏面,分配對這些佈局的權重和對內部佈局的權重。

如果您需要更深入的例子,我可以在上面的示例中添加更多內容。

+0

嗨zabawaba是這是個好主意,但我不能用這種方法創建中心佈局:( – slama007

+0

當然可以,中間的線性佈局可以有一個垂直的線性佈局裏面有3個項目,第一個可以是一個GridView來設置按鈕,第二個和第三個將是一個線性佈局,如果你想讓我提供一個更深入的例子,我可以但它將不得不等待幾個小時。 – zabawaba99

+0

你好 請你能給我舉例說明我如何給你的方法,因爲我嘗試了幾次,我有一個與中間佈局的問題(請幫助我) – slama007