Intereting Posts
Платформа ящика Android отображается в виде фрагмента React Native Android – Статические ресурсы, не отображающие Является ли Robotium надежным для тестирования того, как начинаются быстрые действия и фрагменты? Документация по проекту Guardian ffmpeg android Выбор фона для Live Wallpaper Обои Настройки принудительно закрыть Панель инструментов Android + вкладка Layout + Drawer, Скрыть панель инструментов и прокрутить TabLayout вверх Как сделать снимок (моментальный снимок), в то время как видео было записано с использованием поверхностного вида Тип несоответствия: невозможно преобразовать из целого в boolean Устройства Android с Environment.getExternalStorageDirectory ()! = / Mnt / sdcard /? Ошибка при запуске приложения Android. Не удалось инициализировать эмуляцию OpenglES, используйте «-gpu off», чтобы отключить ее. У разных телефонов Android разные ограничения на количество подключаемых устройств Bluetooth SPP, к которым они могут подключиться? Как объединить растровое изображение наложения и захваченное изображение в Android? Как вы принудительно изменяете ориентацию в тесте на Android Instrumentation? Отображение диалогового окна прогресса перед началом нового действия

Есть ли способ добавить значок в Snackbar?

Это мой код закусочной:

Snackbar.make(viewHolder.productView, "Some Text Here ..", Snackbar.LENGTH_SHORT) .setAction("I want be a icon here instead TEXT", new View.OnClickListener() { @Override public void onClick(View v) { // Perform anything for the action selected } }) .show(); 

Есть ли вообще добавить значок вместо текста в .setAction ?

Я знаю, что Google предложил не использовать значок в Snackbar , но я хочу его использовать.

ImageSpan может выглядеть неправильно с более длинным текстом (несколько строк). Вместо этого используйте левое соединение, пригодное для рисования (так же, как android:drawableLeft ).

 Snackbar snackbar = Snackbar.make(layout, R.string.test, Snackbar.LENGTH_LONG); View snackbarLayout = snackbar.getView(); TextView textView = (TextView)snackbarLayout.findViewById(android.support.design.R.id.snackbar_text); textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.white_checkbox, 0, 0, 0); textView.setCompoundDrawablePadding(getResources().getDimensionPixelOffset(R.dimen.snackbar_icon_padding)); snackbar.show(); 

Вы слышали о ImageSpan? Это может помочь вам достичь своей цели! См. Ниже код:

 SpannableStringBuilder builder = new SpannableStringBuilder(); builder.append("My message ").append(" "); builder.setSpan(new ImageSpan(MainActivity.this, R.drawable.ic_launcher), builder.length() - 1, builder.length(), 0); builder.append(" next message"); Snackbar.make(parent view, builder, Snackbar.LENGTH_LONG).show();] 

Не используйте большие значки, так как они не будут поддерживать гравитацию.

Ref: Как отображать изображение в TextView от Android?

Надеюсь, это помогло.

Это все, что вы можете изменить Snackbar :

 Snackbar snackbar = Snackbar .make(parentLayout, R.string.snackbar_text, Snackbar.LENGTH_LONG) .setAction(R.string.snackbar_action, myOnClickListener); snackbar.setActionTextColor(Color.CYAN); View snackbarView = snackbar.getView(); snackbarView.setBackgroundColor(Color.YELLOW);//change Snackbar's background color; TextView textView = (TextView)snackbarView .findViewById(android.support.design.R.id.snackbar_text); textView.setTextColor(Color.BLUE);//change Snackbar's text color; snackbar.show(); // Don't forget to show! 

К сожалению, мы все еще не можем настроить содержимое Snackbar далеко, как мы делаем Toast . В будущем? Я не знаю.