Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Равномерное заполнение колонками пространства с помощью GridLayout - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Не выводит данные в textview http://www.cyberforum.ru/android-dev/thread1668355.html
Здравствуйте кто читает. Вот такая проблема. Я с сайта центробанка получаю данные о курсе валют с помощью такого метода: public String getValute(String valute) throws IOException { Calendar date =...
Программирование Android Активности. Работа в Eclipce. Ошибки или привести код в порядок Работа в Eclipce По заданию необходимо создать активности. В первой располагаются данные о студенте, и кнопки с переходами на две других активности. На второй активности(экране) находятся строка в... http://www.cyberforum.ru/android-dev/thread1668323.html
Создание неубиваемого сервиса Программирование Android
А как можно создать неубиваемый сервис кроме метода startforaground()? Может какой то флаг можно передать в startCommand чтобы он вообще не убивался? Какой?
Программирование Android Момент с ресивером
Вот допустим есть одно приложение и второе. Компонент первого приложения(например активити) посылает sendBroadcast на активити второго приложения. Но принимающее активити во втором приложении в этот...
Программирование Android Какие уникальные черты отличают RSS-поток? http://www.cyberforum.ru/android-dev/thread1668001.html
приложение должно определять передаётся ли по введенной ссылке RSS поток. Как это сделать? Какие уникальные черты отличают RSS-поток? использую для парсинга jsoup, есть идея использовать...
Программирование Android Создание клавиатуры на C# Появилось желание создать свою собственную клавиатуру на HTC One m7. Узнал, что через Xamarin можно создавать приложения для Android, на языке C#. У кого нибудь был опыт создания клавиатур? Нужна... подробнее

Показать сообщение отдельно
Pablito
2495 / 1940 / 605
Регистрация: 12.05.2014
Сообщений: 6,804
Завершенные тесты: 1
23.02.2016, 13:00
итак
1. как обычно, подключаем новый лаяут
XML
1
compile 'com.android.support:gridlayout-v7:23.1.1'
2. в разметку активити добавляем куда нам надо сам лаяут, я назвал его так же field, это не принципиально
указываем в нем количество колонок, в примере их 3
XML
1
2
3
4
5
6
    <android.support.v7.widget.GridLayout
        android:id="@+id/field"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center"
        app:columnCount="3">
3. в onCreate нашей активити находим этот лаяут
Java
1
        GridLayout field = (GridLayout) findViewById(R.id.field);
4. создаем где-то в активити для удобства метод, который будет добавлять любое View в этот GridLayout
(хоть кнопку, хоть целую разметку, что туда передадим то и добавит)
Java
1
2
3
4
5
6
7
8
    private void addViewToGrid(GridLayout field, View view) {
        GridLayout.LayoutParams lp = new GridLayout.LayoutParams();
        lp.width = 0;
        lp.height = 0;
        lp.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1f);
        lp.rowSpec = GridLayout.spec(GridLayout.UNDEFINED, 1f);
        field.addView(view, lp);
    }
4. для примера я сделал xml разметку для "айтема", которыми будет наполняться этот GridLayout
назовем файл например grid_item.xml и положим его в папку layout
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
 
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_marginLeft="4dp"
        android:layout_marginRight="4dp"
        android:layout_marginTop="4dp"
        android:layout_weight="1"
        android:src="#d99" />
 
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="#d79"
        android:layout_margin="4dp"
        android:gravity="center_horizontal"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1"
        android:text="This is TextView" />
 
</LinearLayout>
5. теперь можно добавлять, пример кода, создаем 10 вьюшек из нашего лаяута grid_item и добавляем их в GridLayout
Java
1
2
3
4
        for (int i = 0; i < 10; i++) {
            View v = View.inflate(this, R.layout.grid_item, null); //  this если это просиходит в активити, если фрагмент то getContext()
            addViewToGrid(field, v);
        }
6. PROFIT
Равномерное заполнение колонками пространства с помощью GridLayout
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru