В соответствии с моим советом, если у вас есть два варианта сделать такой макет и получить из проблемы, которую вы имеете.
1. Использование GridView
Использование GridView вы будете иметь равное место во всех четырех направлениях (слева, справа, сверху, снизу). Вам не нужно беспокоиться о равном расстоянии для элемента сетки.
<GridView
android:id="@+id/album_list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:cacheColorHint="#00000000"
android:gravity="center"
android:numColumns="auto_fit"
android:stretchMode="spacingWidthUniform"
android:drawSelectorOnTop="true"/>
Просто попробуйте код, с которым вы будете иметь одинаковое распределение в сетке.
2. Использование TableLayout и TableRow
Пожалуйста, проверьте ниже код, чтобы использовать TableLayout и TableRow с атрибутом иметь все вид одинаково расположены. Даже если вы уменьшите высоту и ширину TableLayout, она будет оставаться одинаково устроенной в этом представлении.
<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:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_margin="5dp">
<TableRow android:weightSum="3"
android:layout_weight="1" android:gravity="center">
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
</TableRow>
<TableRow android:weightSum="3" android:layout_weight="1" android:gravity="center">
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
</TableRow>
<TableRow android:weightSum="3" android:layout_weight="1" android:gravity="center">
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
<Button android:gravity="center"
android:textSize="13sp" android:textColor="#000000"
android:text="1" android:layout_weight="1"/>
</TableRow>
</TableLayout>
Пожалуйста, найти выход из этого TableLayout.
Сообщите мне, если проблема устранена. Если нет, я буду рад помочь вам снова.
Наслаждайтесь Coding ... :)
какой 'ViewGroup' вы используете? Я думаю, что ваше решение - это 'Gravity.CENTER' для' match_parent' детей – Elltz
У вас есть причина использовать 'android: textSize =" 90dp "' ?? попробуйте утвержденную директиву и посмотрите «android: textSize =« 90sp »' – Elltz
hi @ Eltz, приложение предназначено для людей с низким зрением и уже использует максимальный размер текста. Поэтому, если я использую SP, я могу рискнуть выбрать большой размер текста и нарушить пользовательский интерфейс. Все кнопки находятся в TableRow, я попытался изменить высоту на match_parent на кнопке, и у меня все еще есть та же проблема. Тем не менее, я не думаю, что это имеет какое-то отношение к высоте. – lisovaccaro