2016-10-10 8 views
6

Я использую нижеследующую схему сетки с layout_columnWeight и layout_rowWeight для централизации моего представления в ячейке сетки.Как поддерживать `layout_columnWeight` и` layout_rowWeight` в pre API 21?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_main" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
> 

<GridLayout 
    android:id="@+id/container_grid" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:columnCount="2" 
    android:rowCount="3" 
    android:orientation="horizontal"> 

    <View 
     android:id="@+id/view_red" 
     android:layout_height="100dp" 
     android:layout_width="100dp" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_gravity="center" 
     android:background="#ff0000" 
     android:layout_row="0" 
     android:layout_column="0" /> 

    <View 
     android:id="@+id/view_green" 
     android:layout_height="100dp" 
     android:layout_width="100dp" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_gravity="center" 
     android:background="#00ff00" 
     android:layout_row="0" 
     android:layout_column="0" /> 

    <View 
     android:id="@+id/view_blue" 
     android:layout_height="100dp" 
     android:layout_width="100dp" 
     android:layout_columnWeight="1" 
     android:layout_rowWeight="1" 
     android:layout_gravity="center" 
     android:background="#0000ff" 
     android:layout_row="0" 
     android:layout_column="0" /> 
    </GridLayout> 
</RelativeLayout> 

Но они предназначены только для v21 и выше. Как поддерживать layout_columnWeight и layout_rowWeight функция в pre API 21?

ответ

10

версия GridLayout в библиотеке поддержки имеет обратную совместимость и поддерживает веса, как указано здесь:

https://developer.android.com/reference/android/support/v7/widget/GridLayout.html

так что вам просто нужно добавить compile 'com.android.support:gridlayout-v7:23.1.1' в файл build.gradle и использовать поддержку GridLayout вместо;)

использовать его, как показано ниже (android.support.v7.widget.GridLayout) в файле XML макет:

<android.support.v7.widget.GridLayout 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/container_grid" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:columnCount="2" 
    app:rowCount="3" 
    app:orientation="horizontal"> 

    <View 
     android:id="@+id/view_red" 
     android:layout_height="100dp" 
     android:layout_width="100dp" 
     app:layout_columnWeight="1" 
     app:layout_rowWeight="1" 
     app:layout_gravity="center" 
     android:background="#ff0000" 
     app:layout_row="0" 
     app:layout_column="0" /> 
</android.support.v7.widget.GridLayout> 
+0

Я ошибался в ошибке namspace по различным атрибутам в xml :( – Elye

+0

Вы добавили библиотеку в файл build.gradle? –

+0

Добавлен 'compile 'com.android.support: gridlayout-v7: 24.2.1''. – Elye

 Смежные вопросы

  • Нет связанных вопросов^_^