Я пытался и пытался, и не повезло. Мне повезло со всеми другими ответами здесь, связанными с центрированием GridView
, а также не повезло. Это мой GridView
xml:
<GridView
android:id="@+id/calendar_grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="7"
android:columnWidth="40dp"
android:verticalSpacing="1dp"
android:horizontalSpacing="1dp"
android:paddingTop="2dp"
android:stretchMode="columnWidth"
android:layout_gravity="right"
android:gravity="right"
android:background="#696969" ></GridView>
Я пробовал все комбинации, какие только мог придумать, но мало что сработало. По крайней мере, это не соответствует между устройствами. Это образ того, что он всегда делает.
Как вы можете видеть в правой части GridView, есть интервал. Я пытаюсь постоянно это менять, и это почти никогда не работает. Использование android:stretchMode
меняет его, но искажает расстояние между ячейками, так что это не работает. Как видите, использование Gravity также не работает. Я пробовал все другие значения для него, и это все равно ничего не меняет. Он застрял слева. Я также нахожу странным, что попытка изменить размер android:columnWidth
меньше 40 тоже ничего не дает. И когда я увеличиваю 40 до 45, тоже ничего не меняется. Но если изменить его на 50, пробел справа исчезнет. Но когда я помещаю его на свой телефон, интервал есть!Я пропустил это 2 недели назад, чтобы продолжить работу над другими вещами, но, похоже, мне еще предстоит решить эту проблему или даже понять, почему ничего из того, что я пытаюсь, не работает.
Если это поможет кому-нибудь помочь мне здесь, я также могу предоставить XML для того, что делает ячейки. Но я не уверен, имеет ли это значение. Но вот:
<?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" >
<TextView
android:id="@+id/day_num"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textSize="10dp"
android:background="#000000"
android:height="35dp"
android:gravity="center_vertical|center_horizontal" />
</LinearLayout>
Если это поможет, родителем GridView
является LinearLayout
с этим:
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:layout_weight="0"
android:gravity="center" >
Существует также родственный элемент с весом 1, но я не думаю, что это должно влиять, поскольку вес 0 заставляет эту часть сначала устанавливать свое пространство.
РЕДАКТИРОВАТЬ:
Так что я продолжал играть с этим, очень раздраженный, тем более, что не так много людей, кажется, имеют эту проблему, но похоже, что независимо от того, насколько маленьким я делаю columnWidth
, GridView почти не становится меньше. На самом деле, тот же разрыв, который вы видите, остается на том же уровне, пока я не дойду до 50dp. Но когда я перехожу в портретный режим, разрыв снова появляется, поэтому я поднимаю его до 90dp (, я пробовал под этим, ничего не менял ), и он исчезает. Странно то, что GridView
не меняется, кроме заполнения пробела. Так что я мог бы сделать его 200dp, и он идеально смотрелся бы на моем экране и на любом другом меньшем экране. Как только я перейду на планшет, я подозреваю, что мне нужно будет увеличить это значение, но дело в том, что это странное поведение. Кто-нибудь сталкивался с этим?