2013-07-08 4 views
3

По Google training doc при отправке содержимого, результат Intent.createChooser() есть список:Intent.createChooser() стиль отображения?

[Не удается разместить изображения, потому что я новичок. См. Выше url.]

Однако, когда я его реализую, я получаю больше вида сетки, как в this post.

Является ли вариант выбора стиля Android конкретным для Android? Я заметил, что Dropbox, запущенный на моем устройстве 4.2.2, отображает отображение в стиле списка. Возможно, они внедрили пользовательский выбор, или я не знаю опции Intent.putExtra()?

ответ

0

Этот пользовательский интерфейс Intent Chooser изменился в различных версиях Android.

В частности, ранее Jelly Bean (4.1) он был реализован как темный список. В Jelly Bean он был изменен как световая сетка.

Взгляните на скриншоты из Android Police's article on Jelly Bean UI changes: Old style of Chooser New style of Chooser

Отметим также, что CommonsWare писал об изменении и рекомендовали разработчикам изменить свой собственный Chooser в своем блоге The Linkify Problem: The Detection and the Mitigation, где он отметил, что это может быть связано с патентом:

Android 4.1 (Jelly Bean), например, слегка изменяет Chooser, чтобы показать набор иконок в строке или сетки для выбора серверов, а не классический вертикально-ори Включенный список меню. Было ли это изменение введено на основе этого патента, мы, возможно, никогда не узнаем.

Кроме того, я думаю, что Dropbox, вероятно, создал свой собственный интерфейс для своего выбора.

5

Выбор намерения относится к системе! Он будет отображаться в соответствии с темой вашего устройства. вы не можете изменить это, если вы не измените системный UI.About Dropbox, они могли бы создать chooser, который фактически не принадлежит системе. Они могли бы иметь представление о том, как он выглядит как выборщик, и отправил намерение изготовителю.

+1

Если вы хотите реализовать свой собственный, это класс, который вам нужен http://developer.android.com/reference/android/content/pm/PackageManager.html#queryBroadcastReceivers(android.content.Intent, int) –

Смежные вопросы