Есть много проблем с раздуванием макетов, которые вызваны не правильно использования 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?
Я действительно столкнулся с той же проблемой на своем Moto 360. Мне интересно узнать, что еще кто-то сделал, чтобы решить эту проблему. – kentarosu
подписка на этот вопрос. Как уродливое обходное решение, вы можете временно установить свой круглый макет, как это: 'app: rectLayout =" @ layout/round_activity_my' " И это запустит ваш круглый макет, думая, что он представлен как прямой ... –
I «Мы работаем над этим чрезвычайно« дешево ». Мой код хорош для прямых, поэтому после того, как я это сделал, я просто переписываю свои прямоугольные макеты с помощью кода стиля круглой компоновки, и как только я буду счастлив, я скопирую и вставлю свой код макета круглого стола в фактическую round_layout_activity и верните измененный файл rect_layout. Blah ... –