Intereting Posts
Как добавить звук уведомления приложения в список звуков уведомлений? Невозможно создать обработчик внутри потока, который не вызвал Looper.prepare () Невозможно обновить текст фрагментов при обмене картами Есть ли способ получить доступ к записям календаря без использования gdata-java-client? SetContentView () медленный с фрагментом карты Явное обращение к намерению к динамически широковещательному приемнику Volley: Как настроить Cache.Entry ViewPager внутри фрагмента теряет содержимое при возврате к нему Многоточечный алгоритм трилатерации в Java Использование Boost в android ndk с окнами Показать / скрыть ProgresBar в ActionBar на API Android ниже 11 Где хранятся файлы Android logcat? Кордова Android дублирует функции использования двух плагинов Как отображать объявления Google на Android только с использованием XML? Высота ListView заполняет весь экран, хотя устанавливается как wrap_content

Круглый Android Wear Emulator использует прямоугольные макеты

К сожалению, Moto360 пока не работает в Европе …

Я запускаю круглый Android Wear Emulator, и это работает нормально.

Однако, когда я запускаю свою активность Android Wear (которая использует WatchViewStub), используемый макет – это rect_activy_layout, а не круглый макет

У кого-либо еще есть эта проблема или ее решение при запуске Round Emulator?

благодаря

Есть много проблем с раздуванием макетов, вызванных неправильным использованием WatchViewStub. Я не вижу, чтобы какой-либо код точно знал, но одна распространенная проблема заключается в том, что вы регистрируете прослушиватель для вставки часов, чтобы вы могли проверить, является ли он круглым или квадратным внутри вашего обработчика onApplyWindowInsets:

  final WatchViewStub stub = (WatchViewStub) findViewById(R.id.watch_view_stub); stub.setOnApplyWindowInsetsListener(new View.OnApplyWindowInsetsListener() { @Override public WindowInsets onApplyWindowInsets(View view, WindowInsets windowInsets) { // Need to also call the original insets since we have overridden the original // https://developer.android.com/reference/android/view/View.OnApplyWindowInsetsListener.html stub.onApplyWindowInsets(windowInsets); // this is where you would check the WindowInsets for isRound() return windowInsets; } }); 

Я вижу случаи, когда люди забывают вернуть windowInsets или забывают вызвать stub.onApplyWindowInsets (). Это приводит к созданию квадратной компоновки вместо круглой компоновки.

Кроме того, была ошибка с эмулятором AndroidWearRound, встроенным в SDK. Их было три, и если вы создали неправильный, это создаст квадратный эмулятор. Убедитесь, что у вас есть три эмулятора, которые вы выбираете вторым . Эта ошибка была исправлена ​​в последних версиях Android SDK Tools 23.0.4, но может быть, у вас более старая версия.

Можете ли вы показать нам код, который вы делаете вокруг WatchViewStub?

Одним из простых исправлений является обновление эмулятора Wear Round до уровня API 22, который сейчас отсутствует. Я вообще нашел эмулятор Wear Round на уровне API 21, чтобы иметь какое-то ошибочное поведение, пока до сих пор не обнаружено проблем с Round-эмулятором на уровне API уровня 22. Я думаю, что это исправит проблему, поскольку у меня была такая же проблема Сам в какой-то момент (и это не была проблема установки эмулятора).