Android Wear Notification Layout - две строки в окне и внешний вид
Я заметил, что временная шкала погоды (например) отображает уведомления с двумя строками, как в режиме просмотра, так и в окружении. Я хотел бы повторить это для моих требований, но я не в состоянии это сделать. Я пробовал InboxStyle и BigTextStyle безрезультатно. Положение значка также отличается, что позволяет отображать больше заголовка.
Это как-то возможно или потому, что Weather Timeline - это "приложение для ношения"?
NotificationCompat.Builder notificationBuilder =
new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher)
.setContentTitle("TestTitle")
.setContentText("TestContextTextLoremIpsum");
1 ответ
Карта уведомлений может покрывать значительную часть экрана, в зависимости от стиля пользовательского интерфейса системы. Ваш циферблат должен приспосабливаться к этим ситуациям, гарантируя, что пользователи по-прежнему могут сообщать время, пока имеется карточка с уведомлением.
Вам нужно определить свободное пространство над картой, чтобы вы могли адаптировать циферблат, используйте WatchFaceService.Engine.getPeekCardPosition()
метод. Это говорит о его местонахождении, когда он заглядывает снизу и позволяет обнажить циферблат.
Наблюдательные лица не должны мешать системным элементам пользовательского интерфейса, как описано в разделе "Размещение элементов системного интерфейса". Если ваш циферблат имеет светлый фон или показывает информацию в нижней части экрана, вам, возможно, придется настроить размер карточек уведомлений или включить защиту фона.
@Override
public void onCreate(SurfaceHolder holder) {
super.onCreate(holder);
// configure the system UI
setWatchFaceStyle(new WatchFaceStyle.Builder(AnalogWatchFaceService.this)
.setCardPeekMode(WatchFaceStyle.PEEK_MODE_SHORT)
.setBackgroundVisibility(WatchFaceStyle
.BACKGROUND_VISIBILITY_INTERRUPTIVE)
.setShowSystemUiTime(false)
.build());
...
}
Приведенный выше фрагмент кода конфигурирует подсматриваемые карточки высотой в одну строку, фон подсматриваемой карточки показывается только кратко и только для прерывистых уведомлений, а системное время не показывается.