Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26

GridView: выравнивание колонок по центру

04.03.2014, 10:22. Показов 5079. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Код MainActivity.java:
Java
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
public class MainActivity extends Activity {
    
    String[] data = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
    
    GridView gridView1;
    ArrayAdapter<String> adapter;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
 
        adapter = new ArrayAdapter<String>(this, R.layout.item, R.id.tvText, data);
        gridView1 = (GridView) findViewById(R.id.gridView1);
        gridView1.setAdapter(adapter);
               adjustGridView();
        
    }
    
    private void adjustGridView() {
        gridView1.setNumColumns(5);
        tvText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
      }
}
Код activity_main.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >
 
    <GridView
        android:id="@+id/gridView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:numColumns="5"
        android:stretchMode="columnWidth" >
 
    </GridView>
 
</RelativeLayout>
Код item.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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:background="@drawable/rect"
    android:orientation="vertical">
 
<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:minHeight="40dp"
    android:textSize="70sp"
    android:text="">
</TextView>
 
</LinearLayout>
Как, собственно, сделать так, чтобы текст, расположенный внутри колонки / ячейки был по центру, а не справа? Заранее спасибо.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2014, 10:22
Ответы с готовыми решениями:

Не работает выравнивание по центру TextView
Здравствуте. Я начинающий андроид-разработчик. Я столкнулся со следующей проблемой: текст в TextViev не выравнивается по центру (вообще не...

Какой тег отвечает за выравнивание по центру текста?
Есть переменная типа String, в ней большой текст. Этот текст присваивается textView. Как выровнять по центру частичку этого большего...

Форматирование колонок в GridView
Как настроить направление отображения текста (LTR или RTL) в колонках GridView? Нашел только HorisontalAlign, а вот Dir или Direction...

9
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
04.03.2014, 10:57
Цитата Сообщение от FazonFix Посмотреть сообщение
Как, собственно, сделать так, чтобы текст, расположенный внутри колонки / ячейки был по центру, а не справа?
Замените содержимое файла item.xml на:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/rect" >
 
   <TextView
        android:id="@+id/tvText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:minHeight="40dp"
        android:textSize="70sp" />
 
</RelativeLayout>
0
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
04.03.2014, 14:10  [ТС]
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/rect" >

<TextView
android:id="@+id/tvText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:minHeight="40dp"
android:textSize="70sp" />

</RelativeLayout>
К сожалению, это не помогло. Текст как был слева, так и остался. Вот скриншот:
s52 .radikal .ru/i138/1403/3b/7f0291d0772e.png (пробелы убрать).

Быть можно нужно внутри самой программы назначить так, чтобы TextView выравнивался по центру внутри ячейки?
0
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
04.03.2014, 14:34
Цитата Сообщение от FazonFix Посмотреть сообщение
К сожалению, это не помогло.
Может быть это проблема эмулятора? На настоящем устройстве (Android 4.1) всё работает прекрасно:
0
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
05.03.2014, 17:33  [ТС]
Может быть это проблема эмулятора? На настоящем устройстве (Android 4.1) всё работает прекрасно
К сожалению, проблема осталась. Пробовал на реальном устройстве (планшет, не знаю какой фирмы) и на эмуляторе - всё равно выравнивание по левому краю. Может быть вы мне что-то не дописали (в исходном коде программы, а не в XML, например, т. к. я использую адаптер и вывожу из массива данные) или есть другие способы?
0
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
05.03.2014, 20:38
Цитата Сообщение от FazonFix Посмотреть сообщение
Может быть вы мне что-то не дописали
Исключено, вот только сейчас проделал все с нуля на другом компьютере. ну разве что закомментировал строчку
Java
1
tvText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
но она тут не при чем. На всякий случай я приложил архив со своим (точнее вашим ) проектом. В папке bin вы можете найти уже готовый apk файл чтоб проверить побыстрому.
OneMoreTest.rar
0
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
06.03.2014, 14:18  [ТС]
Так и не проверил твой проект. Но меня больше интересует другая вещь: у меня в item.xml вылазит предупреждение. Что это может быть и как от этого избавиться?
Миниатюры
GridView: выравнивание колонок по центру  
0
Командир зеленых роботов
 Аватар для angryrobot
349 / 286 / 54
Регистрация: 08.10.2013
Сообщений: 576
06.03.2014, 14:26
Цитата Сообщение от FazonFix Посмотреть сообщение
Что это может быть и как от этого избавиться?
Предупреждение потому, что этих двух строчек тут быть не должно. Ваш TextView находится внутри контейнера LinearLayout, а он не поддерживает выравнивание содержащихся внутри него элементов, по центру
0
0 / 0 / 0
Регистрация: 18.01.2014
Сообщений: 26
07.03.2014, 16:32  [ТС]
Наконец-то сделал. Случайным образом ввёл параметр android:layout_gravity в TextView. Выкладываю, если кто-то будет страдать таким же вопросом.

Содержимое item.xml:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#18A608" >
    
<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:minHeight="40dp"
    android:textSize="30sp" >
</TextView>
 
</LinearLayout>

------------------------------------------------------------

И ещё один вопрос:

Вот у меня есть матрица смежности, сделанная посредством GridView, размером 3x3. Как сделать так, чтобы когда я нажимаю на ячейку с id равным 2 (если размер 3x3, то это первый ряд, третья ячейка), то она загоралась не стандартным серым цветом, а, к примеру, зелёным, а все остальные - синим?

В теге LinearLayout файла item.xml есть параметр android:background со значением #18A608:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="#18A608" >
    
<TextView
    android:id="@+id/tvText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:minHeight="40dp"
    android:textSize="30sp" >
</TextView>
 
</LinearLayout>
Но при таком случае будут все ячейки загораться зелёным цветом, причём они будут зелёным цветом всегда, даже если не трогать пальцем экран. Как решить мою проблему?
0
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
07.03.2014, 18:32
Цитата Сообщение от FazonFix Посмотреть сообщение
android:background="#18A608
код зеленого цвета )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.03.2014, 18:32
Помогаю со студенческими работами здесь

Редактирование и сокрытие колонок в GridView
Доброго времени суток всем! На странице лежит GridView, которму присваивается DataSource из DataTable. Все отображается, все хорошо. ...

Верстка и ширина колонок GridView
Здравствуйте, у меня глупый вопрос, но всё же На странице расположен GridView, в нём много колонок. Он находится внутри блока div c...

Добавление в gridView данных из нескольких колонок БД
подскажите можно ли в gridview добавлять данніе из нескольких колонок базі данніх? т.е. наприммер в базе есть таблица с полями міло и...

Выравнивание по центру
Не могу сделать так, чтобы панель с кнопка выравнивалась по вертикали. Прошу помочи JFrame jframe = new JFrame(&quot;Button Frame&quot;);...

Выравнивание по центру
&lt;style type=&quot;text/css&quot;&gt; body{ margin: 0 auto; } .lemon { width: 200px; height: 200px; background:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru