Наложение иногда не рисует - PullRequest
0 голосов
/ 16 июня 2011

Я недавно обновил свой телефон до пряников, и, к моему ужасу, перестало работать одно из моих приложений!

Приложение состоит из SurfaceView и макета (вида), который отображается в виде наложения поверх этого SurfaceView.

XML выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >

  <com.mycompany.MySurfaceView
    android:id="@+id/myview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"    
  />

  <include layout="@layout/settings"
  android:layout_alignTop="@id/myview"
  android:visibility="invisible"
  android:id="@+id/settings"
  />

</RelativeLayout>

Когда пользователь нажимает кнопку меню, я использую этот код для отображения вида:

View settings = (View)findViewById(R.id.settings);
settings.setVisibility(View.VISIBLE);

Это работало безупречно на версиях ранее 2.3, но теперь поведение очень случайное.

Наблюдения

Очень редко все работает.

Иногда вид отображается после его скрытия / скрытия.

Иногда вы можете нажимать кнопки в представлении (даже если оно невидимо), что делает представление отображаемым до конца срока службы приложения.

Метод getVisibility всегда сообщает правильное значение.

Что я пробовал

Восстановление кеша рисования

Использование метода BringToFront

Сообщение недействительным

Установка начального значения представления в «видимое», это заставляет все работать, но я действительно хочу, чтобы оно было изначально невидимым!

Если кто-то захочет проверить проблему, вы можете попробовать ее самостоятельно в моем приложении (оно доступно на рынке, ищите "chainparticles").

Спасибо!

1 Ответ

1 голос
/ 17 июня 2011

Решено, изменив начальное состояние представлений на «ушел». WTF?!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...