В моем приложении для Android у меня есть макет GridView с набором кнопок.Проблема в том, что я не могу правильно установить фокусировку (я имею в виду курсор, управляемый джойстиком на устройстве Android) на кнопках.Я могу описать мою проблему с помощью рисунка:
Я установил для кнопок GridView динамически в коде в BaseAdapter, используя LayoutInflater.В коде я установил текст кнопки, изображение (CompoundDrawable) и цвет фона, потому что мои кнопки работают как флажки (синий фон означает проверенный).
Кажется, что программа фокусирует поле сетки, а не саму кнопку.Я имею в виду что-то вроде ячейки таблицы, а не кнопки в таблице.Поскольку цвет фокуса по умолчанию (зеленый), я установил синий цвет в селекторе.Фокус пресса тоже не работает.И фокус явно за кнопкой, за пределами кнопки.Может кто-нибудь помочь мне с этой проблемой, пожалуйста?Код моих макетов XML:
main.xml:
...
<GridView
android:id="@+id/channels"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="6dip"
android:verticalSpacing="10dip"
android:horizontalSpacing="10dip"
android:numColumns="auto_fit"
android:columnWidth="60dip"
android:stretchMode="columnWidth"
android:gravity="center"
android:background="@color/container_main">
</GridView>
...
channel.xml:
<Button
android:id="@+id/channel"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:background="@color/willBeSetInAdapter" <!-- white/blue/darkblue focus background -->
android:drawableTop="@drawable/willBeSetInAdapter" <!-- icon -->
android:drawablePadding="0dip"
android:text="WillBeSetInAdapter" <!-- label text -->
android:textColor="@color/text_container_main"
android:textSize="12sp"
android:focusable="true"
android:focusableInTouchMode="false">
</Button>
Я пытался установить параметры фокуса в кнопке, а также в GridView.и много чего перепробовал, но, к сожалению, все равно не работает: (