2012-04-23 32 views
26

我開發了一個應用程序,其目標API爲15.該佈局包含網格佈局。現在,當我將目標API更改爲10時,我得到了網格佈局和另一個元素「空間」的問題。 Eclipse會提示我下載2.3.3的支持庫,但我仍然遇到了這個問題。Android API中的網格佈局支持10

回答

36

GridLayout的確已被回溯到API級別7以上。它是(某種)支持庫的一部分。您已經下載了支持庫後,你會發現在您的本地SDK文件夾一個Android庫項目位於:

<sdk_folder>\extras\android\compatibility\v7\gridlayout 

將其設置爲你工作項目的依賴。之後,您需要將整個項目中的參考文件從15級版本更改爲兼容版本,以支持ICS之前的設備。在佈局文件中,將您的xml從GridLayout更改爲android.support.v7.widget.GridLayout。如果不相同,用法應該是相似的。

關於Space部件:我還沒有實際使用這個(還),但它似乎是東西,既可以由設置保證金/填充現有的觀點或自己的泛型View是完全將被替換透明。

+0

Thanx mate ...它爲我工作了!是的,你是成立的空間部件,我使用了一個透明的文本視圖 – 2012-04-24 09:36:54

+0

關於空間部件:如果您使用空間部件僅用於佔用佈局空間的視圖,請考慮使用普通視圖。基本視圖佔用了佈局空間,但是由子類實際實現繪圖,因此從理論上講,View本身並不執行任何繪製,因此是透明的。 – Neilers 2012-11-28 04:37:27

+0

今晚拯救了我的生命。謝謝! – Matt 2013-01-17 20:59:41

18

如果使用Android Studio,一旦您下載了支持庫(如@MH。提及),您必須使用File->Import Module...,然後選擇GridLayout支持的位置,這對我來說位於:<sdk_folder>\extras\android\support\v7\gridlayout

接下來,您可以使用<android.support.v7.widget.GridLayout>而不是在xml佈局文件中使用<Gridlayout>。下面是一個例子:

<TextView 
     android:textSize="32dip" 
     app:layout_columnSpan="4" 
     app:layout_gravity="center_horizontal" 
    /> 

最後,GridLayout的支持庫參考必須添加:在佈局

<android.support.v7.widget.GridLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:useDefaultMargins="true" 
    app:alignmentMode="alignBounds" 
    app:columnOrderPreserved="false" 
    app:columnCount="4" 
> 

元素將引用app代替android爲GridLayout的性質如上文和在子元素中看到到\src\build.gradledependencies部分:

dependencies { 
    compile 'com.android.support:appcompat-v7:+' 
    compile 'com.android.support:gridlayout-v7:+' 
} 
+0

在當前的Android Studio中,您還可以轉到文件 - >項目結構 - >模塊下的模塊 - >依賴關係。這有點容易。 – SleepProgger 2016-08-07 19:06:34