Я создаю числовую панель, используя макет таблицы с кнопками, как показано на прикрепленных изображениях, и использую selector.xml
для установки другого фона, когда кнопки находятся в фокусе или нажаты. Первая кнопка получает фокус по умолчанию, размер фонового изображения первой кнопки (изображение 1) сравнительно больше, чем другие кнопки (изображение 2), хотя я использую один и тот же selector.xml
для всех кнопок в макете таблицы.
Логически все кнопки должны иметь одинаковое фоновое изображение, как я использую один и тот же selector.xml
. Я потратил довольно много времени на выявление причины этого, но не повезло.
Я пытался сохранить другое изображение в качестве фона даже тогда, когда происходило то же самое. Я попытался увеличить строки и столбцы макета таблицы, даже тогда размер фона первой кнопки отличается.
![https://i.stack.imgur.com/ASr87.png](https://i.stack.imgur.com/ASr87.png)
![https://i.stack.imgur.com/ZmGCD.png](https://i.stack.imgur.com/ZmGCD.png)
Selector.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/unfocused_button" android:state_pressed="true"></item>
<item android:drawable="@drawable/focused_button" android:state_focused="true"></item>
</selector>
Файл ресурсов
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/numericPad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginLeft="25dp"
android:layout_marginRight="5dp"
android:layout_marginTop="10dp">
<!--android:shrinkColumns="*"
android:stretchColumns="*"-->
<TableRow
android:id="@+id/tableRow1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:id="@+id/button1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/number_button_selector"
android:gravity="center"
android:nextFocusLeft="@id/button1"
android:text="1"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ffffff"
android:textSize="20dp"></Button>
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/number_button_selector"
android:gravity="center"
android:text="2"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ffffff"
android:textSize="20dp"></Button>
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/number_button_selector"
android:gravity="center"
android:text="3"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ffffff"
android:textSize="20dp"></Button>
<Button
android:id="@+id/button4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/number_button_selector"
android:gravity="center"
android:nextFocusRight="@id/button4"
android:text="4"
android:textAppearance="?android:attr/textAppearanceListItemSmall"
android:textColor="#ffffff"
android:textSize="20dp"></Button>
</TableRow>
....Similar code for row 2 and row 3
Благодарим Вас за помощь.
Надеюсь, вы можете понять проблему из моего описания. Если нет, пожалуйста, дайте мне знать в комментариях, я могу дать дополнительную информацию.