Android — Прозрачная кнопка переключения на карте Google

#android #google-maps #android-relativelayout #togglebutton

#Android #google-карты #android-relativelayout #кнопка переключения

Вопрос:

У меня очень простой макет: RelativeLayout с MapView и кнопкой переключения. Почему кнопка переключения отображается прозрачной, когда я нигде не указывал, что она должна быть, и реальный вопрос, как я могу ее остановить?

Прозрачная кнопка переключения

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@ id/mainlayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<com.google.android.maps.MapView
    android:id="@ id/mapview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:clickable="true"
    android:apiKey="NoYouCantSeeMyKey" />

<ToggleButton android:id="@ id/aerialsbutton"
    android:layout_width="150px"
    android:layout_height="50px"
    android:textOn="Aerials On"
    android:textOff="Aerials Off"
    android:layout_alignParentRight="true" />

</RelativeLayout>
  

Я попытался установить значение alpha равным 1 и переключить порядок MapView и ToggleButton, но безуспешно. Любая помощь очень ценится.

ОБНОВЛЕНИЕ: у меня установлена тема android:theme="@android:style/Theme.Holo.NoActionBar" приложения. Может ли это иметь значение?

ОБНОВЛЕНИЕ 2: тема не имеет значения. Здесь я в тупике.

Комментарии:

1. Вы пробовали android: атрибут disabledAlpha?

2. Это не помогло и не должно, потому что моя кнопка переключения не отключена.

3. вы можете указать setBackgroundDrawable (Drawable d)

4. Спасибо за предложение. На что бы я ее установил? Мне просто нужна стандартная кнопка переключения, без прозрачности.

Ответ №1:

К ней должна быть применена тема или стиль, которые определены где-то еще. Это не стиль кнопки переключения по умолчанию. Вот часть снимка экрана с почти идентичным XML-файлом в моем тестовом проекте — здесь показана кнопка переключения по умолчанию:

введите описание изображения здесь

Я надеюсь, что это принесет какую-то пользу.

Комментарии:

1. Спасибо, какую тему / стиль вы применили к кнопке переключения на скриншоте? Мне просто нужен Honeycomb по умолчанию, который, как я думал, был Holo.

2. Я вообще не применял какую-либо тему. Я только что попробовал приложение на эмуляторе API 11 (Honeycomb), и кнопка выглядит так же, как на моем снимке экрана.

3. Итак, я только что создал новое приложение на API 11 с соответствующей версией эмулятора, без каких-либо настроек стиля или темы, а кнопка переключения по-прежнему прозрачна на карте. Не могли бы вы поделиться со мной своим кодом, чтобы я мог воспроизвести, как вы получили непрозрачную кнопку?

4. Пометка как ответ, потому что я подозреваю, что виновником здесь является моя среда разработки, и ваш ответ должен сработать.

Ответ №2:

Я решил эту проблему, просто добавив стиль в тег ToggleButton:

  <ToggleButton 
    android:id="@ id/my_toggle_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:textOn="@string/toggle_button_on"
    android:textOff="@string/toggle_button_off"
    style="@android:style/Widget.Button.Toggle"/>
  

Я надеюсь, что это поможет кому-то с той же проблемой. 🙂