Содержание

Как составить текст вакансии, чтобы откликались только нужные специалисты: инструкция для HR

Задача текста вакансии – привлечь как можно больше кандидатов. Это даст вам возможность выбора, который затем уже можно сузить с помощью, например, пробного задания или теста на профессиональные компетенции.

Часто вакансии начинают с требований: опыт от трех лет, высшее экономическое, знание CRM-систем… Это то, что нужно вам. А что нужно соискателю? Зацепите его – расскажите, что он получит, придя в вашу компанию, помимо «конкурентной зарплаты» и типовых обязанностей.

Пишите вакансию по модели промо-страницы: сначала выгоды для кандидата – потом требования.

Поэтому план вакансии должен быть примерно таким:

  • название должности;
  • коротко о компании: чем вы занимаетесь, чего достигли, какую пользу приносите обществу;
  • под какую задачу ищете человека;
  • какие выгоды получит сотрудник;
  • обязанности;
  • требования: опыт, навыки, образование;
  • условия: зарплата, график, соцпакет.

Название должности

Название должно быть конкретным, чтобы кандидат сразу понял, что нужно будет делать: менеджер по продажам стройматериалов, пресс-секретарь сети медцентров, а не просто менеджер по продажам и пресс-секретарь.

Если должность можно назвать по-разному, напишите названия через слэш: интернет-маркетолог/трафик-менеджер.

Коротко о компании

Расскажите в трех-четырех предложениях, чем вы занимаетесь, почему это полезно миру, чего вы достигли. Не стоит копировать сюда текст «О компании» с вашего сайта – он большой и к тому же ориентирован, скорее всего, на клиентов, а не на потенциальных сотрудников.

Фото: Unsplash

Пример: «Мы – «Красивая сила», единственная в городе сеть фитнес-клубов только для женщин. За счет авторских программ помогаем женщинам полюбить фитнес, йогу и танцы, и сделать их неотъемлемой частью жизни.

Мы постоянно расширяемся: в прошлом году открыли филиал в Ленинском районе, а уже в этом готовим открытие центра в Октябрьском. Поэтому с нами у вас есть реальная возможность вырасти: тренер –> старший тренер –> управляющий филиалом».

Вы входите в тройку лидеров рынка? У вас долгая история, и с вами не страшно в любой кризис? Вы стартап и даете большую свободу действий? Найдите главные преимущества и покажите, что работать у вас – удача для кандидата.

Под какую задачу ищете человека

Это еще не про требования – это про уязвимость. Что компания не может сделать без сотрудника, почему она его ищет?

Пример: «В нашей команде некому заниматься соцсетями. Нужен smm-маркетолог, который сделает группы в Facebook и «ВКонтакте», наладит регулярный выпуск контента, привлечет аудиторию и наладит с ней общение».

Для сильного профессионала сложная задача – это интересный вызов, для слабого – повод пройти мимо, и хорошо.

Какие выгоды получит сотрудник

Здесь стоит вспомнить о рабочих мотивах – факторах, которые влияют на выбор работы и работодателя. На основе наших исследований мы выделили профессиональный, социальный, гедонистический мотивы, а также мотивы смысла, бонусов, признания и фактор негативного опыта.

Чем больше выгод, закрывающих разные потребности, вы найдете у компании и вакансии, тем больше откликнется кандидатов.

Чтобы привлечь проактивного профессионала, важно начать с рассказа об интересных задачах, возможностях развития и карьерного роста.

Фото: Unsplash

Например: «нужен человек, который с нуля выстроит HR-процессы», «лучших отправляем на стажировки за границей», «наш партнер – языковая школа, они бесплатно учат сотрудников английскому». Если начнете с настольного тенниса и печенек в офисе, рискуете привлечь инертных людей, которые выбирают работу по принципу «лишь бы не в напряг». Затем можно рассказать, например, о премиях за перевыполнение плана (мотив бонусов) и гибком графике (гедонистический мотив).

Вместо стандартного «дружный коллектив» напишите, что делает вашу команду классной: коллеги активно поддерживает инициативу и помогают друг другу с проектами, помогают новичкам влиться в работу (социальный мотив).

Пример: «Раньше у нас был рекрутер на аутсорсе, но мы выросли и теперь ищем человека в штат. Вам предстоит отстроить HR-процессы в компании и продумать систему мотивации персонала. Вы сможете влиять на уровень своего дохода: за закрытие вакансий в короткий срок и снижение текучести гарантируем премии.

В нашей команде ценится постоянный профессиональный рост, поэтому мы готовы оплачивать онлайн-курсы и семинары от ведущих HR-экспертов. А новые знания можно смело применять на практике: у нас слаженный коллектив, открытый новым идеям и готовый поддерживать начинания коллег».

Отлично, если следующие два пункта – задачи и требования – вместе будут не длиннее, чем пункт про выгоды. Они и не будут большими, если вычеркнете все ненужное – типовые для должности задачи и требования, которые нужны везде.

Обязанности

Расскажите, что сотруднику предстоит делать именно в вашей компании. Не перечисляйте огромный список типовых для должности задач – объясните, чем ваша вакансия непохожа на остальные.

Если в вакансии «копирайтер» кандидат видит: «писать тексты, собирать и анализировать информацию» – это ноль информации. Пишут тексты и работают с информацией все копирайтеры – и рекламный журналист в городской газете, и корпоративный блогер.

Фото: Unsplash

Поэтому меньше абстракций – больше фактуры и конкретики: «Нужно писать email-рассылку для клиентов о новых продуктах, рекламные статьи в печатные издания и еженедельные посты для соцсетей».

Требования: опыт, навыки, образование

Не пишите вещи, которые необходимы везде, – успевать в срок, ответственно подходить к работе, быть трудолюбивым. Кандидаты и сами понимают, что ленивые, безответственные люди, постоянно срывающие дедлайн, никому не нужны.

Кроме того, наличие важных для должности качеств гораздо надежнее проверить с помощью тестов или специальных вопросов на собеседовании, чем написать в вакансии «Нужны ответственные» и получить в сопроводительном письме «Я как раз такой».

Пример: «Ищем графического дизайнера. Обязательно знание CorelDraw, PhotoShop, 3D MAX. Отлично, если у вас есть опыт разработки интерьеров».

Не завышайте требования: указывайте только те способности и знания, без которых сотруднику у вас не обойтись и которым нельзя быстро обучить. Иначе рискуете отпугнуть достойных канидатов, которые не откликнутся из-за несоответствия мелочам.

Условия

Выгоды вы описали в самом начале, так что здесь – оставшиеся детали: зарплата, график, соцпакет. Писать «зарплата по договоренности» или вообще о ней не упоминать – плохо. Кандидаты, скорее всего, решат, что вы предлагаете сумму ниже рынка. Тогда откликнутся новички и те, кто по каким-то причинам долго не может найти работу и, отчаявшись, кликает на все предложения подряд.

Фото: Unsplash

Если не можете назвать конкретную сумму, хотя бы обозначьте вилку. Разброс не должен быть слишком большим: «от 50 тысяч до 250 тысяч» вызывает недоверие. Одни кандидаты решат, что реальная зарплата близка к указанному минимуму, а другие – наоборот, что к максимуму, и потом огорчатся, если их доход с бонусами и премиями «не дотянет» до высокой планки.

В этом же пункте можно написать про соблюдение Трудового кодекса, 28-дневный отпуск, белую зарплату. Хотя эти условия обязательны, они есть не везде, и для соискателя их наличие может стать большим плюсом.

Может быть, у вас расширенный соцпакет: бесплатные обеды, абонемент на фитнес в здании офиса или возможность раз в неделю работать из дома? Укажите это.

Резюме

  • Пишите живым языком – дружелюбно и уважительно, как если бы говорили с приятелем. Избегайте канцелярских штампов и официоза.
  • Сначала выгоды кандидата – потом требования.
  • Добавляйте как можно больше фактуры и конкретики – расскажите, чем ваша вакансия отличается от других.

Материалы по теме:

Вы будете и дальше закрывать вакансии месяцами, если повторите эти ошибки

Как закрывать сложные вакансии в регионах: несколько проверенных вариантов

Как внедрить машинное обучение и повысить количество откликов на вакансии на 5 миллионов: кейс HeadHunter

Перестаньте ждать хороших специалистов — они не придут к вам сами. Лучше попробуйте эти два способа

6 признаков того, что эта вакансия не заслуживает вашего внимания

Фото на обложке: Unsplash

Как составить текст сообщения?

Планируя рассылку по базе клиентов через онлайн-платформу Stream Telecom, важно понимать, что ее эффективность в большей степени будет зависеть от качества текста сообщения. Сегодня расскажем, как правильно составить текст сообщения, который донесет всю важную информацию конечному пользователю и поможет получить положительный отклик с его стороны.

Краткость – сестра таланта. Включите своего клиента в легкий и непринужденный диалог с вашей компанией, исключив использование длинных текстов, сложных формулировок и специальных терминов. Текст с большим количеством акцентов рассеивает внимание и отвлекает от основной идеи сообщения. Пишите кратко, ясно и конкретно, чтобы получатель не искал скрытые смыслы текста.

Вежливость – залог успеха. Составляйте свое сообщения в соответствии с общепринятыми нормами, словно вы говорите с клиентом лично «с глазу на глаз». Едва ли вы начнете диалог с клиентом фразой «Эй, иди скорее к нам и покупай», поэтому выстраивайте общение с клиентом корректно: поздоровайтесь, поблагодарите за покупку или предложите особые условия.

Выключите Caps Lock. Помогите своему клиенту максимально быстро и легко воспринять ваше уникальное предложение, сделав ваш текст более читабельным за счет деления на смысловые блоки и исключения слов, написанных в верхнем регистре. Текст состоящий только из заглавных букв выглядит абсолютно «непроницаемым», замедляет чтение и усложняет его восприятие.

Призывайте к действию. После прочтения сообщения клиент должен четко понимать, что ему сделать, чтобы приобрести понравившийся товар или услугу. Сall-to-action – это элемент текста, мотивирующий получателя на определенный шаг. «Приходите!», «Звоните!», «Подробности по ссылке» обычно органично завершат текст, выступив финальным аккордом.

Кому. Куда. Дайте получателю в тексте свои контакты, например, телефон или ссылку на сайт, чтобы он в любой момент мог узнать подробности вашего предложения и воспользоваться им. Нет смысла ждать, когда клиент сам найдет вашу компанию, не теряйте такую возможность контакта.

Пиши, сокращай. Не секрет, что количество символов в 1 текстовом сообщении ограничено 70 символами на кириллице и 160 символами на латинице. Чтобы не останавливаться на полуслове и донести свое уникальное предложение до вашей аудитории, просто воспользуйтесь сокращателем ссылок, например, Lid.st. Так вы сможете «убить сразу трех зайцев»: добавить в ссылку название своего бренда, освободить место для всестороннего описания вашего товара или услуги, а также собирать аналитические данные по результатам рассылки в режиме реального времени.


Памятка.Как составить текст-описание, текст-рассуждение

Памятка
Как составить текст-описание:
1.Представить объект.
2.Выделить признаки предмета, которые нужно описать.
3.Оценка объекта речи. Подумай, какие слова можно употребить, чтобы описание было точным, ярким, какие сравнения использовались.
4.Заключение. Определить свое отношение к предмету, который будете описывать.

Памятка
Как составить текст-рассуждение:
1.Тезис, краткое сообщение о том, что вы будете доказывать.
2.Доказательство, рассуждение. Его можно начать так: «Происходит это потому, что…», «Объясняется это тем, что…» и т.п.
3.Вывод.

Памятка
Как составить текст-описание:
1.Представить объект.
2.Выделить признаки предмета, которые нужно описать.
3.Оценка объекта речи. Подумай, какие слова можно употребить, чтобы описание было точным, ярким, какие сравнения использовались.
4.Заключение. Определить свое отношение к предмету, который будете описывать.

Памятка
Как составить текст-рассуждение:
1.Тезис, краткое сообщение о том, что вы будете доказывать.
2.Доказательство, рассуждение. Его можно начать так: «Происходит это потому, что…», «Объясняется это тем, что…» и т.п.
3.Вывод.

(Текст-повествование, в котором рассказывается о каком-либо случае, он отвечает на вопрос что случилось?, текст-описание, который отвечает на вопрос какой?

В описательных текстах описываются люди, предметы, животные, события. К описанию можно поставить вопросы: какой? какая? какое?

Памятка
Как составить текст-описание:

1.Представить объект.
2.Выделить признаки предмета, которые нужно описать.
3.Оценка объекта речи. Подумай, какие слова можно употребить, чтобы описание было точным, ярким, какие сравнения использовались.
4.Заключение. Определить свое отношение к предмету, который будете описывать.

Памятка
Как составить текст-рассуждение:

1.Тезис, краткое сообщение о том, что вы будете доказывать.
2.Доказательство, рассуждение. Его можно начать так: «Происходит это потому, что…», «Объясняется это тем, что…» и т.п.
3.Вывод.

(Текст-повествование, в котором рассказывается о каком-либо случае, он отвечает на вопрос что случилось?, текст-описание, который отвечает на вопрос какой?

В описательных текстах описываются люди, предметы, животные, события. К описанию можно поставить вопросы: какой? какая? какое?

Как составить текст для одностраничника – простые приемы

Привет! На связи Игорь Зуевич, и сегодня мы поговорим с вами о том, что нужно сделать, чтобы ваш текст для одностраничника был интересным и продающим.  Эта статья о том, как научиться писать тексты для одностраничников, причем грамотные и профессиональные.

Каждый уважающий себя копирайтер просто обязан уметь грамотно и корректно писать статьи на одностраничники, потому что это достаточно актуально и прибыльно.

Одностраничные сайты — это веб ресурсы, на которых, как правило, продают различные товары и услуги. Спрос на изготовление и наполнение этих сайтов ежедневно растет и было бы неразумно оставаться в стороне от этого процесса.

Вот, собственно, и есть цель написания данной статьи – научиться писать хорошие тексты для одностраничников.

Почему люди не читают тексты до конца

В ходе изучения данной темы было установлено, что как только человек, зашедший на одностраничный сайт, видит, что его просто обрабатывают и нагло впихивают какую то услугу, он недолго думая просто уходит. Мы попытались установить конкретные причины.

Вот некоторые из них:

Тот товар, который вы продаете, не интересует посетителя.

Если текст написан не очень грамотно. Не интересные тексты отталкивают, поэтому нужно научиться привлекать внимание читателя.

Еще одним очень важным показателем является то, насколько текст убедителен. Если у посетителя возникнет недоверие к вашим словам, он перейдет на другой сайт.

Товар, который вы рекламируете на одностраничнике должен быть описан максимально подробно, интересно и в тоже время ненавязчиво. Не соблюдение хоть одного из этих параметров также грозит потерей посетителя.

Задачи копирайтера при создании текстов для одностраничника

Если вы ответственный копирайтер и задаетесь целью создания качественных текстов для одностраничника, то должны поставить перед собой следующие задачи:

Статья, которую вы пишете, создается для того, чтобы помочь заказчику привлечь клиентов. Поэтому показателем того, что вы все сделали правильно, являются заказчики. Если 10 – 15% посетителей стали заказчиками, то это успешно написанный текст.

Но при написании статьи вы должны не просто попытаться продать товар, а сделать так, чтобы покупатель после того, как воспользуется услугами заказчика, захотел рекомендовать его другим людям.

Написать текст для одностраничника — это далеко не простая задача. Почему? Потому, что зайдя на обычный коммерческий сайт, посетитель имеет возможность подробно на разных страницах изучить широкий выбор товаров и их описаний.

Но у вас, как у киллера, только один шанс.

Одна страница, один текст и один на один с посетителем. Здесь недостаточно просто обмануть программу проверки на уникальность. Тут нужна интрига, что-то необычное и завлекающее.

Несколько маленьких советов:

Если вы уже взялись за такой заказ, то прежде, чем сдавать его заказчику, должны проверить каждую букву, каждое словосочетание и предложение. Текст должен в буквальном смысле быть пропитан вашим вниманием, не жалейте на это времени, даже если его нужно потратить больше, чем запланировали. Лучше не заработать сейчас денег, но заработать имя, благодаря которому деньги придут позже.

Создайте план, по которому будете создавать свой текст. В плане четко распишите все идеи и цели, которые преследуете, а также распределите чему и сколько внимания уделять.

Не «наливайте воды». Не нужно гнаться за количеством символов или за тем, чтобы вывалить на покупателя максимальное количество информации по данному товару. Очень важно то, как вы подадите эту информацию. Выстройте свой текст так, чтобы посетитель, прочитав один абзац, захотел прочесть второй, после него третий, и так до заказа товара. Не нужно делать ваш сайт в виде блога.

Разработайте свой стиль текста. Здесь очень важно, как текст выглядит на первый взгляд. Люди не очень любят читать большие тексты, и если ваш выглядит нудно и однотонно, то нужно заставить себя его прочесть, что сразу же ведет к потере посетителей.

Даже если ваш текст немаленький, разбейте его на подзаголовки, абзацы, маркированные списки и добавьте картинки, смайлики и т. д. Если человек увлечется, то, по крайней мере, начнет читать. Поверьте, есть тексты не самых маленьких размеров, но читаются на одном дыхании и погружают в тему с первых слов.

Текст для одностраничника не простая задача, так как существует множество программ, позволяющих вывернуть ваш текст на изнанку и проверить на такие параметры, как привлекательность и, что немаловажно, эффективность. Поэтому будьте хитрее — создайте несколько вариантов, тем самым оставив за собой право после беседы с заказчиком быстро среагировать и предоставить другой текст.

научитесь говорить себе «стоп». Повторимся, что это не та работа, которая требует количества знаков, текст для одностраничника должен быть интересным и продаваемым, это основная его миссия. Лучше еще раз проверить, чтобы каждая запятая имела свой смысл.

Вот мы вкратце ознакомились с тем, каким он должен быть этот текст, получили ряд очень важных советов. В конце еще хочется добавить, что не стоит сдавать роботу, пока не будете на 100% уверены в ее эффективности.

Наберитесь решительности и приступайте. Интересных и продаваемых вам робот!

Как видите, если все-таки соблюдать эти рекомендации и советы, то вам будет гораздо легче уложиться в установленные сроки, и написать текст для одностраничника на хорошем профессиональном уровне.  Как всегда, главное, правильно действовать и у вас все получится. Действовать лучше сообща и вместе с теми людьми, у которых уже есть опыт и результаты. Приходите в наши программы, заодно и заработаете больше!

С Вами,
       — Игорь Зуевич.

Рекомендую Вам обратить внимание на следующие программы по созданию дополнительного источника дохода в интернете:

Закрытое Master Mind сообщество
Мастера партнерских программ
Партнерский Маркетинг для Новичков

Если следующие 5 минут вы можете инвестировать в  самообразование, то переходите по ссылке и читайте следующую нашу статью: Как перестать срывать дедлайн и успеть сделать вовремя?


Понравилось? Жми «Мне Нравится«
Оставьте комментарий к этой статье ниже

Как составить текст по ключевым словам? 2 способа

Прочитав статью вы научитесь, составлению текста по ключевой фразе, созданию SEO-статей. Есть несколько способов — следовать плану, импровизировать или пересказать чужое готовое.

Вариантов, как составить текст по ключевым словам, может быть несколько: либо мы начинаем с плана статьи, либо полностью импровизируем и текст прорисовывается сам «по ходу дела». Рассмотрим оба варианта:

2 способа составить текст по ключевым словам

Первый способ написать статью по ключам: планирование

Если ключей несколько, они и могут послужить нам для составления плана. Например, в случае ключей «гелевая ручка купить», «оптом гелевая ручка» и «синяя гелевая ручка» мы можем составить такой план:

В первой части будет задействован (в тексте) ключ «синяя гелевая ручка», так как это один из видов ручек.

Во второй части будет упомянут (неоднократно) ключ «гелевая ручка купить».

Последнюю часть составим по ключевому слову «оптом гелевая ручка», рассказав по ходу о возможности заказать гелевую ручку через сайт.

Есть еще два немаловажных момента:

  • каким бы ни был план, не забывайте про вводную часть и заключение. Иначе текст будет смотреться как огрызок.
  • пункты плана в дальнейшем станут подзаголовками в статье. А это значит, что использовать в них ключевые фразы — очень желательно.

Посмотрим, во что превратится наш план после всех замечаний:

Видите? Смысл изменился не намного, а вес заголовков вырос в глазах ПС. При этом подзаголовок остался читабельным (со смыслом для читателя), что тоже немаловажно.

Это мы составили план статьи, т.е. построили из ключей некоторый скелет текста. Но правильно построенные подзаголовки — это еще только половина успеха. В самом тексте ключи тоже должны быть гармонично вписаны.

Что делаем дальше?

Берем каждую часть нашего плана и расписываем:

1. «Гелевая ручка — это … В этой статье мы поговорим о том, как …» — это в качестве введения.

2. «Есть несколько видов … Наиболее распространенной по праву считается …» — это про синюю гелевую ручку.

  • Обязательно используйте каждый хотя бы раз ключ в прямом вхождении. Что это значит? Это означает употребить фразу в тексте с точностью до буквы: нельзя менять число («синИЕ гелевЫЕ ручкИ»), падеж («синЕЙ гелевОЙ ручкОЙ») и так далее. Нельзя ставить точку между словами в ключевой фразе («… как и любая синяя гелевая. Ручка  имеет три особенности …»), а вот запятую можно (если иное не сказано заказчиком).

3. То же самое проделываем с остальными частями плана.

Второй способ написать статью по ключам: импровизация

Учимся составлять текст по заголовку и ключевым словам в режиме «что думаю, то и пишу»:

Если у вас есть целая серия ключей (5-10 штук), то этот способ Вам подойдет просто идеально.

Начинаем писать с общих вводных слов по теме, далее выполяем такой цикл действий по составлению текста (по ключевикам):

1. Выбор ключа. Смотрим первый ключ в списке (ну или тот, что больше приглянулся).

2. Пишем предложение, в котором этот ключ будет хорошо вписан.

3. Далее подкрепляем это предложение еще парой предложений.

  • Чаще всего ключ как-то связан с потребностью пользователя узнать конкретику: цены, свойства, пошаговое руководство и так далее. Дайте ответ пользователю на интересующий его вопрос до того, как перейти к следующему ключу.

4. Вычеркиваем ключ из списка, повторяем весь цикл действий для второго, третьего и остальных ключей.

  • Не забывайте про структуру статьи: маленькие абзацы, подзаголовки или списки сделают статью понятнее и приятнее на глаз. О том, к чему приводит несоблюдение этого правила, я писала в своих вредных советах.

Третий способ написать статью по ключам: рерайтинг

В статье я привела 2 способа, как составить текст по ключевым словам. Но есть еще один способ написания статьи по ключевым фразам, и он самый распространенный. Суть в следующем:

  1. Ключ вбивают в строку поиска ПС гугл или Яндекс.
  2. Пролистывают на вторую или третью страничку результатов поиска.
  3. Выбирают статью нужного объема.
  4. Делают рерайтинг этой статьи.
  5. Делают сео-оптимизацию (вписывают ключи).

Готово!

Конечно, этот способ быстрее, но вот чем он плох: статья получается не оригинальной. А значит есть риск, что выше исходника она в поиске не поднимется. Ведь поисковики борются с обилием одинаковых по смыслу статей в поисковой выдаче, и если им удастся изменить алгоритм проверки уникальности текстов так, что даже рерайт «не прокатит», мы все будем кусать локти. Поэтому больше своих мыслей, меньше рерайта!

С наилучшими пожеланиями, администрация сайта «Текст статьи».

Как правильно составить текст СМС рассылки? (примеры)

Составление корректного текста, способного пробудить интерес и мотивировать на приобретение, требует соблюдения следующих правил: 
  • Применяйте структуру: выгода – СТА – контакты. 
    Создавайте лаконичное информативное сообщение, не перегруженное текстом. Смс должно быть читаемым и легко воспринимаемым получателем. Помните, что первое слово провоцирует на прочтение или удаление сообщения и старайтесь заинтересовать началом фразы. Более 70% Клиентов не будут читать длинное сообщение от незнакомого адресата. 
    Призыв к действию в лаконичном предложении поможет получателю понять, что от него требуется, и с какой целью смс было направлено именно ему. Используйте только один призыв, чтобы не сбивать с толку и описывайте выгоды, которые можно получить при сотрудничестве. 
    • Не применяйте большое количество заглавных букв. 
    Они подойдут для привлечения внимания, но чрезмерное добавление оттолкнет клиента и затруднит восприятие. Не используйте аббревиатур, терминов и сокращений, непонятных адресату. Такое сообщение может быть расценено, как спам и удалено без прочтения. 
    Пример: АКЦИЯ: при покупке одной книги в «Буквоед» в июне получи скидку 20% на вторую. 
    • Оставляйте контактные данные компании, чтобы при первой необходимости потенциальный клиент могу использовать их. 
    Не забывайте указывать название компании или бренда. По статистике около 10% пользователей переходят на сайт компании по указанной ссылке. 
    • Позвольте адресату почувствовать себя особенным, предоставляя информацию об уникальных акциях. 
    Представьте себя на месте целевой аудитории и подумайте, что могло бы заинтересовать именно эту категорию людей. 
    Пример: Только для владельцев золотых дисконтных карт скидка в январе увеличивается до 50%. Срок действия акции с 1 по 31.01. Ваш Рив Гош. 
    Мобильные рассылки предполагают тестинг и модифицирование текстов на основе реакции клиентов, получивших сообщение. Уточните, как текст будет выглядеть на экранах различных моделей телефонов, удостоверьтесь в том, что сообщение лаконично и легко воспринимается при прочтении, а также несет личный посыл. 
    В среднем использование качественно подобранных текстовых сообщений позволяет увеличить объем клиентов на 15-25% уже в первые дни распространения смс. 
    Изменяйте сообщение, анализируя реакцию потребителей, основанную на показателях продаж и откликах и результат будет еще эффективнее.  
    Специалисты Prostor Mobile Agency помогут сформировать безупречную мобильную рассылку, которая расширит вашу целевую аудиторию и позволит увеличить объем продаж и число реальных клиентов.

    Как составить план текста — рекомендации по составлению плана с примерами

    Прежде чем приступать к написанию статьи, автору необходимо понять, что именно и в каком порядке он собирается описывать. В этом помогает план текста – изложенные в виде списка и логически структурированные основные мысли статьи.

    Давайте разберемся, как составить план текста, поговорим о видах планов и требованиях, которые необходимо соблюдать при их написании.

    Зачем нужен план текста?

    • План облегчает автору задачу и значительно ускоряет процесс написания текста, избавляет от страха белого листа.
    • Закончив одну часть статьи, вам не придется думать, о чем рассказывать дальше – достаточно посмотреть в план и раскрыть следующий пункт.
    • План не даст запутаться, отступить от темы, поможет более четко и доступно для читателя сформулировать свои мысли.
    • Кроме того, если вы пишете тексты на заказ, после составления плана вы можете согласовать его с заказчиком, дабы тот убедился, что вы правильно поняли свою задачу.

    Особенности написания плана

    Прежде чем приступить к написанию плана текста, внимательно изучите всю найденную информацию по теме, а затем выделите основную идею. Задумайтесь о том, какую задачу должна решать статья, на какой вопрос читателя отвечать. Информация, которая содержит ответ на вопрос, и определит структуру текста.

    Собранные для написания текста сведения необходимо разделить на несколько частей, разбить на смысловые блоки, выделить логические категории для удобства восприятия информации.

    Поставьте себя на место читателя, обратившегося к вашей статье для решения своей проблемы. Подумайте, какие именно данные будут наиболее важны для него и какие советы могут быть максимально полезны. Теперь опишите все это в виде последовательности пунктов, и ваш план будет готов, а дальше можно приступать к написанию и редактированию материала.

    При составлении плана нужно учитывать характер текста. Например, при написании новостей и обзоров в первых пунктах плана нужно отразить самые важные, привлекающие внимание данные, в середине статьи подробно раскрыть изложенные в начале сведения, а в конце расположить обобщение или дополнительную информацию. Тогда как при написании научных статей автор, наоборот, сначала излагает аргументы, ссылается на авторитетные источники и только в конце текста озвучивает основную идею материала.

    Виды планов текста

    Статья состоит из заголовка, введения, основной части и заключения. Рассмотрим, какие виды планов позволяют структурировать информацию основной части текста.

    Назывной план

    Назывной план состоит из небольших заголовков, включающих обычно от 2 до 4 слов. Глаголы в таком типе плана не используются, содержание пунктов выражается существительными в именительном падеже и прилагательными. Каждый пункт такого плана состоит из опорных слов и словосочетаний, которые отражают какой-то процесс, явление либо состояние.

    Пример назывного плана для данной статьи:

    1. Назначение плана текста.
    2. Особенности написания плана.
    3. Виды планов текста.
    4. Требования к плану текста.

    Вопросный план

    Структура плана этого типа основана на вопросах, которые автор задает к каждому смысловому блоку текста. На мой взгляд, это самый простой вариант плана, так как уже в процессе обдумывания темы и сбора материала для статьи вопросы возникают сами собой. Этот вариант идеально подойдет, если вы пишете руководство, инструкцию или обучающую статью. Начинайте вопросительные предложения со слов: как, когда, почему, какой, сколько, кто, каким образом и т. п.

    Например, к текущей статье вопросный план может быть таким:

    1. Зачем нужен план текста?
    2. В чем заключаются особенности написания плана?
    3. Какие существуют виды планов текста?
    4. Как проверить правильность составления плана?

    Тезисный план

    Тезисный план – это план, состоящий из тезисов, как и назывной, однако здесь обязательно используются глаголы, из-за чего пункты получаются длиннее. Тезис представляет собой основную мысль нескольких абзацев, которая сформулирована в одном предложении. Подлежащее в каждом пункте обозначает тему, а сказуемое раскрывает ее.

    На каждую тысячу знаков рекомендует отводить один пункт в тезисном плане. Соответственно, если в статье 5000 знаков, пунктов-тезисов должно быть 5.

    Рассмотрим, что такое тезисный план на примере этой статьи:

    1. Причины, по которым имеет смысл составлять план текста.
    2. Действия, которые необходимо выполнить в начале написания плана.
    3. Нюансы, которые необходимо учесть при составлении плана в зависимости от характера текста.
    4. Виды планов могут быть разными и каждый подходит для определенных типов текста.
    5. Требования, которым должен соответствовать правильно составленный план.

    Опорный план

    Опорный план-схема характерен тем, что в качестве его пунктов используются только ключевые мысли, самые значимые слова или отрывки предложений, на которые автор будет опираться при написании текста. План этого типа хорошо подходит для составления текста устного выступления, презентации, а также при написании различных небольших по объему текстов, таких как новости, анонсы, краткие обзоры и т.п.

    В опорную схему уместно включить главные факты, цифры, названия предметов, а также имена действующих лиц и цитаты. Каждый пункт данного плана является опорой, вызывающей яркие, детальные картины, которые передают содержание текста. Назначение этого вида плана – систематизация собранного материала и облегчение последующего воспроизведения информации. Пункты в таком плане могут существенно отличаться друг от друга как по структуре, так и по длине.

    Пример опорного плана:

    1. 4 причины целесообразности написания плана текста.
    2. Какие особенности надо учитывать при написании плана.
    3. 5 видов планов текста с примерами.
    4. В каких случаях можно обойтись простым, а когда нужен сложный план.
    5. Чек-лист проверки правильности составления плана текста.

    Смешанный план

    Совсем необязательно стремиться к тому, чтобы все пункты плана представляли собой вопросы или являлись тезисами статьи, можно составить план смешанного типа. Например:

    1. Зачем нужен план текста?
    2. Особенности написания плана.
    3. Какие существуют виды планов текста?
    4. Чек-лист проверки правильности составления плана.

    Простые и сложные планы текста

    Планы текста по своему типу также можно разделить на простые и сложные. Сложный план отличается большей развернутостью и содержит подпункты. Это необходимо, если статья содержит мысли разного уровня, когда определенная мысль раскрывается посредством нескольких других. Используйте сложные планы с пронумерованными пунктами и подпунктами, оформленными как маркированный список, для длинных серьезных статей со множеством подзаголовков – в этом случае вы не упустите из вида ни одну даже самую мелкую деталь.

    В других случаях можно ограничиться составлением простого плана, в котором пункты располагаются последовательно.

    Сложный план для данной статьи может выглядеть так:

    1. Зачем нужен план текста?
    2. В чем заключаются особенности написания плана?
      • С чего начинается составление плана
      • Зависимость от характера текста
    3. Какие существуют виды планов текста?
      • Назывной план
      • Вопросный план
      • Тезисный план
      • Опорная схема
      • Смешанный тип
      • Простые и сложные планы текста
    4. Как проверить правильность составления плана?

    Требования к плану текста

    Правильно составленный план текста должен соответствовать ряду требований:

    • Во-первых, он должен иметь четкую, логичную структуру, при взгляде на которую сразу должно быть ясно, о чем пойдет речь в статье. Все пункты плана должны быть связаны между собой. При прочтении плана не должно возникать дополнительных вопросов, ход повествования должен быть плавным, а пункты должны подробно раскрывать основной вопрос или задачу текста.
    • Следите за тем, чтобы информация в разных пунктах не повторялась – в двух разных пунктах плана не должно описываться одно и то же разными словами.
    • Обратите внимание на полноту раскрытия темы – план должен содержать исчерпывающую информацию и отражать все нюансы выбранной тематики.
    • В плане не должно быть лишних пунктов. Если по определенной подтеме нечего написать кроме краткой формулировки, объединяйте такие пункты с другими.
    • Пункты плана не должны напоминать целые абзацы, их длина не должна превышать 9 слов. Они должны содержать только краткую информацию о том, что вы собираетесь осветить в статье.
    • Будьте лаконичны – придерживайтесь небольшого числа пунктов. 5-7 пунктов для простого плана вполне достаточно. Маленькие пункты можно объединять с другими.

    Заключение

    Итак, мы рассмотрели, что такое план текста, и убедились, что его использование делает работу над статьей намного продуктивнее. При наличии грамотно составленного плана вы напишете текст быстрее и качественнее. План позволяет легко сфокусироваться на теме, в процессе его составления в голове автора вырисовывается четкая картина того, как должен выглядеть готовый текст и на какие вопросы читателя он будет отвечать.

    Выбирайте тот тип плана, что наилучшим образом соответствует виду текста, который вам предстоит написать. И помните, что при составлении плана информационной статьи вы не обязаны неукоснительно придерживаться какого-то одного из типов и видов.

    Текст в Compose  | Реактивный ранец Разработчики Android

    Текст является центральным элементом любого пользовательского интерфейса, а Jetpack Compose упрощает отображать или писать текст. Compose использует состав своих строительных блоков, это означает, что вам не нужно перезаписывать свойства и методы или расширять большие классы. чтобы иметь определенный компонуемый дизайн и логику, работающую так, как вы хотите.

    В качестве основы Compose предоставляет BasicText и BasicTextField которые являются базовыми для отображения текста и обработки пользовательского ввода.На более высоком уровень, Compose предоставляет Text и TextField , которые компонуются в соответствии с рекомендациями по дизайну материалов. Рекомендуется используйте их, так как они имеют правильный внешний вид для пользователей Android и включают в себя другие варианты, чтобы упростить их настройку без необходимости писать много код.

    Отображение текста

    Самый простой способ отображения текста — использовать Text компонуемый с Строка в качестве аргумента:

      @Составной
    весело SimpleText () {
      Текст("Привет мир")
    }
      

    Показать текст из ресурса

    Мы рекомендуем вам использовать строковые ресурсы вместо жесткого кодирования значений Text , так как вы можете совместно использовать одни и те же строки с вашим Просмотры Android, а также подготовка вашего приложения к интернационализации:

      @Составной
    весело StringResourceText () {
      Текст (строковый ресурс (R. строка.hello_world))
    }
      

    Стиль текста

    Составной объект Text имеет несколько необязательных параметров для стилизации содержимого. Ниже мы перечислили параметры, которые охватывают наиболее распространенные варианты использования текста. К посмотреть все параметры Text , рекомендуем посмотреть на Compose Text источник код.

    Всякий раз, когда вы устанавливаете один из этих параметров, вы применяете стиль ко всему текстовое значение. Если вам нужно применить несколько стилей в одной строке или абзацы, взгляните на раздел о нескольких встроенных стили.

    Изменение цвета текста
      @Составной
    весело BlueText () {
      Text("Hello World", color = Color.Blue)
    }
      

    Изменение размера текста
      @Составной
    весело BigText () {
      Text("Hello World", fontSize = 30. sp)
    }
      

    Выделение текста курсивом

    Используйте параметр fontStyle для выделения текста курсивом (или установите другой FontStyle ).

      @Составной
    весело курсивный текст () {
      Text("Hello World", fontStyle = FontStyle.курсив)
    }
      

    Выделение текста жирным шрифтом

    Используйте параметр fontWeight для полужирного текста (или установите другой FontWeight ).

      @Составной
    веселый полужирный текст () {
        Text("Hello World", fontWeight = FontWeight.Bold)
    }
      

    Выравнивание текста

    Параметр textAlign позволяет установить выравнивание текста в пределах Text компонуемой области поверхности.

    По умолчанию Text выберет естественное выравнивание текста в зависимости от его значение содержания:

    • Левый край контейнера Text для алфавитов с письмом слева направо, таких как Латиница, кириллица или хангыль
    • Правый край контейнера Text для алфавитов с письмом справа налево, таких как Арабский или иврит
      @Preview(showBackground = true)
    @составной
    весело CenterText () {
        Text("Привет, мир", textAlign = TextAlign.Центр,
                    модификатор = Modifier.width(150.dp))
    }
      

    Если вы хотите вручную установить выравнивание текста Text компонуемого, предпочитайте используя TextAlign.Start и TextAlign.End вместо TextAlign. Left и TextAlign.Right соответственно, так как они разрешаются к правому краю текста компонуемый в зависимости от предпочтительной языковой ориентации текста. Например, TextAlign.End выравнивает по правому краю для французского текста и по левому краю для арабского текста, но TextAlign.Right выравнивается по правой стороне, несмотря ни на что используется алфавит.

    Примечание. Выравнивание текста отличается от выравнивания макета. размещение Composable в контейнере, таком как Row или Column . Проверять из документации по основам макета Compose чтобы узнать больше об этом.

    Работа со шрифтами

    Текст имеет параметр fontFamily , позволяющий установить шрифт, используемый в компонуемый. По умолчанию используются семейства шрифтов с засечками, без засечек, моноширинные и курсивные шрифты. включены:

      @Составной
    весело Разные шрифты () {
        Столбец {
            Text("Hello World", fontFamily = FontFamily.с засечками)
            Text("Hello World", fontFamily = FontFamily.SansSerif)
        }
    }
      

    Вы можете использовать атрибут fontFamily для работы с пользовательскими шрифтами и гарнитурами. определено в папке res/fonts :

    В этом примере показано, как определить семейство шрифтов на основе этих шрифтов. файлы и использование функции шрифта :

      val firaSansFamily = FontFamily(
            Шрифт(R.font.firasans_light, FontWeight.Светлый),
            Шрифт(R. font.firasans_regular, FontWeight.Normal),
            Шрифт(R.font.firasans_italic, FontWeight.Normal, FontStyle.Italic),
            Шрифт(R.font.firasans_medium, FontWeight.Medium),
            Шрифт (R.font.firasans_bold, FontWeight.Bold)
    )
      

    Наконец, вы можете передать этот fontFamily в компонуемый Text . Потому что fontFamily может включать разные веса, вы можете установить вручную fontWeight на выберите правильный вес для вашего текста:

      Столбец {
        Текст(..., fontFamily = firaSansFamily, fontWeight = FontWeight.Light)
        Text(..., fontFamily = firaSansFamily, fontWeight = FontWeight.Normal)
        Текст(
            ..., fontFamily = firaSansFamily, fontWeight = FontWeight.Normal,
            fontStyle = FontStyle.Italic
        )
        Text(..., fontFamily = firaSansFamily, fontWeight = FontWeight. Medium)
        Text(..., fontFamily = firaSansFamily, fontWeight = FontWeight.Bold)
    }
      

    Чтобы узнать, как установить типографику во всем приложении, просмотрите темы документация.

    Несколько стилей в тексте

    Для установки разных стилей в одном и том же тексте компонуемый, вы должны использовать AnnotatedString , строка, которую можно аннотировать стилями произвольных аннотаций.

    AnnotatedString — это класс данных, содержащий:

    • A Текст значение
    • A Список из SpanStyleRange , эквивалент встроенного стиля с позицией диапазон в пределах текстового значения
    • A List of ParagraphStyleRange , определяющий выравнивание текста, текст направление, высота строки и стиль отступа текста

    TextStyle для использования в Text composable , тогда как SpanStyle и ParagraphStyle предназначен для использования в AnnotatedString .

    Разница между SpanStyle и ParagraphStyle заключается в том, что ParagraphStyle может применяться ко всему абзацу, а SpanStyle может применяться к уровень персонажа. Как только часть текста помечена с помощью ParagraphStyle , эта часть отделена от остальных, как если бы у нее был перевод строки в начале начало и конец.

    AnnotatedString имеет безопасный тип строитель чтобы упростить создание: buildAnnotatedString .

      @Составной
    весело MultipleStylesInText () {
        Текст(
            buildAnnotatedString {
                withStyle (стиль = SpanStyle (цвет = Color.Blue)) {
                    добавить("Н")
                }
                добавить("привет")
    
                withStyle (стиль = SpanStyle (fontWeight = FontWeight. Bold, цвет = Color.Red)) {
                    добавить("W")
                }
                добавить("мир")
            }
        )
    }
      

    Мы можем установить ParagraphStyle так же:

      @Составной
    весело ParagraphStyle () {
        Текст(
            buildAnnotatedString {
                withStyle(style = ParagraphStyle(lineHeight = 30.сп)) {
                    withStyle (стиль = SpanStyle (цвет = Color.Blue)) {
                        добавить("Здравствуйте\n")
                    }
                    со стилем(
                        стиль = SpanStyle(
                            Вес шрифта = Вес шрифта.Полужирный,
                            цвет = Цвет.Красный
                        )
                    ) {
                        добавить("Мир\n")
                    }
                    добавить("Составить")
                }
            }
        )
    }
      

    Максимальное количество строк

    Чтобы ограничить количество видимых строк в компоновке Text , установите maxLines параметр:

      @Составной
    весело Длинный текст () {
        Текст("Здравствуйте". повторить (50), maxLines = 2)
    }
      

    Переполнение текста

    При ограничении длинного текста вы можете указать TextOverflow , который отображается только в том случае, если отображаемый текст усечен. Для этого установите textOverflow параметр:

      @Составной
    весело OverflowedText() {
        Text("Hello Compose".repeat(50), maxLines = 2, overflow = TextOverflow.Ellipsis)
    }
      

    Тематика

    Чтобы использовать тему приложения для оформления текста, см. документация.

    Взаимодействие с пользователем

    Jetpack Compose обеспечивает детализированную интерактивность в Text . Выбор текста теперь более гибкий и может быть выполнен в компонуемых макетах. Взаимодействие с пользователем в тексте отличаются от других составных макетов, так как вы не можете добавить модификатор к части компонуемого текста Text . В этом разделе освещаются различные API для обеспечения взаимодействия с пользователем.

    Выбор текста

    По умолчанию составные элементы недоступны для выбора, что означает, что по умолчанию пользователи не могут выберите и скопируйте текст из вашего приложения.Чтобы включить выделение текста, вам нужно обернуть ваши текстовые элементы с помощью SelectionContainer composable:

      @Составной
    весело SelectableText () {
        Контейнер выбора {
            Text("Этот текст можно выделить")
        }
    }
      

    Вы можете захотеть отключить выбор определенных частей выбираемой области. Сделать поэтому вам нужно обернуть невыбираемую часть с помощью DisableSelection составной:

      @Составной
    весело PartiallySelectableText() {
        Контейнер выбора {
            Столбец {
                Text("Этот текст можно выделить")
                Текст("Это тоже")
                Text("И этот тоже")
                ОтключитьВыбор {
                    Текст("Но не этот")
                    Text("Ни то, ни другое")
                }
                Text("Но опять же, вы можете выбрать это")
                Text("И этот тоже")
            }
        }
    }
      

    Получение позиции клика по тексту

    Чтобы прослушивать клики по Text , вы можете добавить clickable модификатор. Однако, если вы ищете , получите позицию клика в пределах Текст компонуемый, в случае, если у вас есть разные действия на основе разные части текста, вам нужно использовать ClickableText вместо:

      @Составной
    весело SimpleClickableText () {
        Кликабельный текст(
            text = AnnotatedString("Нажми на меня"),
            onClick = { смещение ->
                Log.d("ClickableText", "$offset -th символ нажат."")
            }
        )
    }
      
    Нажмите с аннотацией

    Когда пользователь нажимает на компоновку Text , вы можете захотеть прикрепить дополнительные информация к части значения Text , например URL-адрес, прикрепленный к определенному слово для открытия в браузере, например.Для этого необходимо прикрепить аннотация, которая принимает тег ( String ), элемент ( String ) и текстовый диапазон как параметры. Из AnnotatedString эти аннотации можно отфильтровать с помощью их теги или текстовые диапазоны. Вот пример:

      @Составной
    весело AnnotatedClickableText() {
        val annotatedText = buildAnnotatedString {
            добавить("Нажмите")
    
            // Мы присоединяем эту аннотацию *URL* к следующему содержимому
            // пока не будет вызвана `pop()`
            pushStringAnnotation(тег = "URL",
                                 аннотация = "https://developer.android.com")
            withStyle (стиль = SpanStyle (цвет = Color.Blue,
                                        fontWeight = FontWeight.Bold)) {
                добавить("здесь")
            }
    
            поп()
        }
    
        Кликабельный текст(
            текст = аннотированный текст,
            onClick = { смещение ->
                // Проверяем, прикреплена ли к тексту аннотация *URL*
                // в месте клика
                annotatedText.getStringAnnotations (тег = «URL», начало = смещение,
                                                        конец = смещение)
                    . firstOrNull()?.let { аннотация ->
                        // Если да, мы записываем его значение
                        Log.d("URL-адрес клика", annotation.item)
                    }
            }
        )
    }
      

    Ввод и изменение текста

    TextField позволяет пользователям вводить и изменять текст. Есть два уровня Реализации TextField :

    1. TextField — это реализация Material Design. Мы рекомендуем вам выбрать эта реализация, как она следует материальному дизайну методические рекомендации:
      • Стиль по умолчанию заполнен
      • OutlinedTextField — это контур версия стайлинга
    2. BasicTextField позволяет пользователям редактировать текст с помощью аппаратного или программного обеспечения. клавиатуре, но не содержит украшений, таких как подсказки или заполнители.
      @Составной
    весело SimpleFilledTextFieldSample() {
        var text по помните { mutableStateOf("Hello") }
    
        Текстовое поле(
            значение = текст,
            onValueChange = {текст = оно},
            метка = { Текст ("Ярлык") }
        )
    }
      

      @Составной
    весело SimpleOutlinedTextFieldSample() {
        var text по помните { mutableStateOf ("") }
    
        OutlinedTextField(
            значение = текст,
            onValueChange = {текст = оно},
            метка = { Текст ("Ярлык") }
        )
    }
      

    Стилизация текстового поля

    TextField и BasicTextField имеют много общих параметров для настройки их.Полный список для TextField доступен в источнике TextField . код. Это неполный список некоторых полезных параметров:

    • однострочный
    • максЛайнс
    • стиль текста
      @Составной
    весело StyledTextField () {
        значение var по запоминанию { mutableStateOf("Hello\nWorld\nInvisible") }
    
        Текстовое поле(
            значение = значение,
            onValueChange = {значение = оно},
            метка = {Текст("Введите текст")},
            максЛайнс = 2,
            стиль текста = стиль текста (цвет = цвет.Синий, fontWeight = FontWeight.Bold),
            модификатор = Modifier.padding(20.dp)
        )
    }
      

    Мы рекомендуем TextField вместо BasicTextField , когда ваш дизайн требует Материал TextField или OutlineTextField. Однако следует использовать BasicTextField . при создании проектов, которым не нужны украшения из спецификации материала.

    Варианты клавиатуры

    TextField позволяет вам установить параметры конфигурации клавиатуры, такие как клавиатура макет или включите автозамену, если она поддерживается клавиатурой.Немного возможности не могут быть гарантированы, если программная клавиатура не соответствует варианты представлены здесь. Вот список поддерживаемых клавиатур опции:

    • капитализация
    • автозамена
    • Тип клавиатуры
    • имеэкшен

    Форматирование

    TextField позволяет установить VisualTransformation на входном значении, например, замена символов на * для паролей или вставка дефисов через каждые 4 цифры номера кредитной карты:

      @Составной
    весело PasswordTextField () {
        var пароль с помощью RememberSaveable { mutableStateOf ("") }
    
        Текстовое поле(
            значение = пароль,
            onValueChange = { пароль = он },
            метка = {Текст("Введите пароль")},
            VisualTransformation = ПарольVisualTransformation(),
            KeyboardOptions = KeyboardOptions(keyboardType = KeyboardType. Пароль)
        )
    }
      

    Дополнительные примеры доступны в исходном коде VisualTransformSamples.

    Вход для очистки

    Обычной задачей при редактировании текста является удаление начальных символов или иное преобразовывать входную строку каждый раз, когда она изменяется.

    В качестве модели следует исходить из того, что клавиатура может быть произвольной и большой редактирует каждый onValueChange . Это может произойти, например, если пользователь использует автокоррекция, замена слова смайликом или другие функции интеллектуального редактирования.К правильно справиться с этим, напишите любую логику преобразования с предположением, что текущий текст, переданный в onValueChange , не связан с предыдущим или следующим значения, которые будут переданы в onValueChange .

    Чтобы реализовать текстовое поле, которое запрещает начальные нули, вы можете сделать это, удаление всех ведущих нулей при каждом изменении значения.

      @Составной
    весело NoLeadingZeroes () {
      val ввод с помощью RememberSavable { mutableStateOf ("") }
      Текстовое поле(
          значение = ввод
          onValueChange = { новый текст ->
              ввод = новый текст.trimStart { это == '0' }
          }
      )
    }
      

    Для управления положением курсора при очистке текста используйте TextFieldValue перегрузка TextField вместо передачи обычной строки . Эта перегрузка позволяет изменить позиция курсора как часть государства.

    Составление текста | CallFire

    Ваш первый шаг в создании и отправке вашей текстовой широковещательной кампании — написать ее. Вы делаете это через экран Text Creation — Compose или вкладку Compose.

    Вкладка «Создать»

    Экран Text Creation – Compose (см. ниже) – это место, где вы вводите текстовое сообщение.

    Но подождите секунду — пока не уходите от отправки текстовых сообщений! В поле Сообщение введите текстовое сообщение длиной не более 160 символов. По мере того, как вы вводите сообщение, под полем отображается количество оставшихся символов до 160.

    Получатели, ответившие на ваше сообщение словом «Стоп», будут автоматически помещены в ваш список «Не писать».При желании установите флажок «Добавить текст отказа по умолчанию». В ваш текст будет вставлено предложение «Ответить STOP, чтобы отказаться».

    На этом экране есть пара вещей, которые нам нужно объяснить вам в первую очередь. См. рисунок ниже, а также объяснение, следующее за ним.

    Поле с избыточным количеством символов (желтое): отраслевым стандартом является ограничение длины текстовых сообщений до 160 символов или меньше. Если ваше сообщение превышает этот предел, вы увидите число «-» (знак минус) под окном сообщения.Кроме того, появится желтое поле с тремя вариантами: «Отправить несколько сообщений», «Не отправлять» и «Обрезать конец сообщения». Выбор «Отправить несколько сообщений» означает, что ваше сообщение будет разбито на два отдельных сообщения; первый будет содержать 160 символов, а второй — оставшиеся символы. Обратите внимание, что с вашего счета будет взиматься плата за каждое из этих двух или более сообщений, которые вы отправляете каждому человеку в вашем списке, что увеличивает вашу обычную плату. Поле «Отправлено»: Это поле над окном сообщения.В этом поле вы увидите общий шорткод CallFire. Это код, а также связанное с ним ключевое слово, которое вы указываете, на которое получатели вашего ключевого слова ответят. Это также может быть номер телефона, указанный в вашей учетной записи. Более подробную информацию о шорткодах и ключевых словах можно найти здесь.

    Настройка вашего сообщения с помощью переменных: Если вы хотите персонализировать свои текстовые сообщения, чтобы отдельные получатели получали уникальный текст, вы можете заменить статические ссылки формулой: ${contact. <имя поля>}. Переменная может быть связана с одним из предопределенных полей CallFire (firstName, homePhone и т. д.) или со столбцом загружаемого вами файла Excel.

    Например, если ваши контакты уже есть в вашей учетной записи, вы можете составить сообщение вроде этого: Здравствуйте, ${contact.firstName}. Завтра будет вечеринка.
    Если вы загружаете список контактов, а имена находятся в столбце B, вы должны использовать: Hello ${contact.b}. Завтра будет вечеринка.

    Когда вы будете удовлетворены сообщением, которое вы ввели в поле, нажмите кнопку ДАЛЕЕ.Вы перейдете на страницу «Создание текста – Контакты», также известную как вкладка «Контакты». Инструкции по заполнению этой вкладки вы найдете в следующем разделе этого справочного документа.

    Изучение Jetpack Compose: текст — Джо Берч

    В Android Studio 4.0 Canary 1 мы можем приступить к изучению Jetpack compose — нового способа декларативного создания пользовательского интерфейса для приложений Android. Чтобы начать работу с компоновкой реактивного ранца, на официальном сайте разработчика есть отличное руководство.В этой серии статей я хочу углубиться в каждый из доступных компонентов, исследуя, как мы можем использовать каждый из них в наших приложениях.


    В этой статье мы начнем с компонента Text , который мы, вероятно, будем использовать в большинстве наших приложений. Что касается текста, у нас есть компонент Composable Text, расположенный в пакете androidx.ui.core. Этот компонент предоставляет нам набор атрибутов для управления внешним видом нашего текста.

     @Составной
    забавный текст(
        текст: строка,
        модификатор: Модификатор = Модификатор.Нет,
        стиль: TextStyle? = ноль,
        стиль абзаца: стиль абзаца? = ноль,
        softWrap: Boolean = DefaultSoftWrap,
        переполнение: TextOverflow = DefaultOverflow,
        maxLines: Внутр.? = Максимальное количество линий по умолчанию,
        selectionColor: Color = DefaultSelectionColor
    ) 

    Использование компонента «Текст» из коробки не требует от нас слишком многого, если мы просто хотим отобразить текст на экране. Например, возьмем текст без какой-либо настройки:

    .

    Мы можем отобразить это в нашем предварительном просмотре / на устройстве, объявив новый компонент Text и указав значение для атрибута text :

     Текст(текст = "Это какой-то текст") 

    Когда дело доходит до компонента Text, мы видим в конструкторе, что существует гораздо больше атрибутов, которым мы можем присвоить значения.Давайте быстро погрузимся в каждый из них, чтобы узнать, как мы можем настроить внешний вид нашего текстового компонента:

    softWrap — указывает, должен ли текст разрываться при мягком разрыве строки. По умолчанию это true , что означает, что по умолчанию текст будет перенесен на следующую строку, когда ширина контейнера будет достигнута. Чтобы увидеть, как это выглядит, давайте создадим контейнер с ограниченной шириной:

    .
     Контейнер (ширина = Dp (80f)) {
        Текст(
            текст = "ПриветПриветПривет"
        )
    } 

    Как видите, наш текст переносится на новую строку, когда достигает конца контейнера. Однако если мы установим softWrap = false , то наш контейнер будет действовать так, как если бы для компонента не было ограничений на горизонтальное пространство. Это дало бы нам что-то вроде этого:

    overflow — определяет способ отображения переполняющего текста внутри компонента. Мы можем объявить вывод переполненного текста одним из трех способов:

    • Clip — указывает, что переполненный текст должен быть обрезан, когда он достигает ограничений своего родителя.Это параметр по умолчанию, используемый для переполнения
    • Fade — переполненный текст будет исчезать вместо того, чтобы внезапно обрезаться по ограничению. Расположение затухания будет зависеть от того, где произошло переполнение
    • Многоточие — в переполненном тексте будет использоваться многоточие ( ), если соблюдены ограничения размеров

    maxLines — указать максимальное количество строк, которое может отображаться для текстового компонента. Это значение, допускающее значение NULL, и это значение атрибута по умолчанию, если оно не установлено:

    .
     Контейнер (ширина = Dp (100f)) {
        Текст(
            текст = "ПриветПриветПривет",
            максЛайнс = 1
        )
    } 

    paragraphStyle — ссылка androidx.ui.text.ParagraphStyle, используемая для объявления различных атрибутов для оформления абзацев. Мы подробно рассмотрим это в следующем разделе ниже

    .

    textStyle — ссылка androidx.ui.text.TextStyle, используемая для объявления различных атрибутов, используемых для стилизации текста.Мы подробно рассмотрим это в следующем разделе ниже

    .

    selectionColor — ссылка androidx.ui.graphics.Color, используемая для стиля компонента при выделении текста


    Стиль текста

    Когда дело доходит до определения атрибута стиля для текстового компонента, нам нужно использовать экземпляр класса TextStyle. Как мы видим ниже, здесь есть набор различных свойств, которые мы можем установить:

     класс данных TextStyle(
        вал цвет: Цвет? = ноль,
        valРазмер шрифта: Sp? = ноль,
        val fontSizeScale: Плавающий? = ноль,
        val fontWeight: FontWeight? = ноль,
        val fontStyle: FontStyle? = ноль,
        val fontSynthesis: FontSynthesis? = ноль,
        var fontFamily: FontFamily? = ноль,
        val fontFeatureSettings: Строка? = ноль,
        val letterИнтервал: Em? = ноль,
        val baselineShift: BaselineShift? = ноль,
        val textGeometricTransform: TextGeometricTransform? = ноль,
        val localeList: LocaleList? = ноль,
        фон val: Цвет? = ноль,
        val украшение: TextDecoration? = ноль,
        валь тень: Тень? = ноль
    ) 

    Возможно, вы заметили, что каждый из них допускает значение NULL со значением по умолчанию NULL. Это означает, что вам нужно указать только те атрибуты, которые вы хотите стилизовать.Давайте рассмотрим каждый из этих атрибутов TextStyle и необходимые данные, когда дело доходит до их установки:

    • color — ссылка androidx.ui.graphics.Color, используемая для цвета текста
    • fontSize — размер шрифта с использованием ссылки androidx.ui.core.Sp используется для масштабирования данного fontSize на. Это существенно умножит объявленный fontSize на этот масштаб
    • fontWeight — вес, используемый для текста.Для этого мы должны использовать веса, определенные в сопутствующем объекте для класса:
     val W100 = FontWeight(100)
    val W200 = FontWeight(200)
    val W300 = FontWeight(300)
    val W400 = FontWeight(400)
    val W500 = FontWeight(500)
    val W600 = FontWeight(600)
    val W700 = FontWeight(700)
    val W800 = FontWeight(800)
    val W900 = FontWeight(900)
    значение Нормальный = W400
    значение Жирный = W700 
    • fontStyle – стиль для текста. Это может быть либо Обычный , либо Курсив .
    • fontSynthesis — это позволяет нам указать, должна ли система пытаться «подделывать» жирный/курсивный стиль для данного шрифта, когда семейство шрифтов не содержит запрошенный стиль. Можно установить одно из следующих значений:
      • Нет — если значение не существует для данного семейства шрифтов, то к шрифту будет применен стиль по умолчанию. семейство не содержит жирного начертания.Курсивные шрифты не будут синтезироваться
      • Стиль — синтезируются только курсивные шрифты, если семейство шрифтов не содержит курсивного начертания. Полужирные шрифты не будут синтезироваться
      • Все — Будут синтезированы как жирный, так и курсивный начертания, если они не существуют в нужном семействе шрифтов
    • Семейство шрифтов компонент. Есть несколько вариантов того, как мы можем установить это:

    — Использование одного из предоставленных семейств шрифтов в сопутствующем объекте:

     val SansSerif = FontFamily("без засечек")
    val Serif = FontFamily("serif")
    val Monospace = FontFamily("моноширина")
    val Cursive = FontFamily("cursive") 

    — Предоставление собственного шрифта с использованием одного из предоставленных конструкторов:

     конструктор (genericFamily: String): это (genericFamily, listOf())
    
    конструктор (шрифт: шрифт): это (ноль, список (шрифт))
    
    конструктор (шрифты: List): это (ноль, шрифты)
    
    конструктор (vararg fonts: Font): это (null, fonts. АсСписок()) 
    • fontFeatureSettings — используется для предоставления любых расширенных настроек типографики для шрифта в соответствии с атрибутами, используемыми в CSS.
    • baselineShift — объявляет вертикальный сдвиг, используемый от базовой линии текста, ссылка может быть создана одним из следующих способов:
      • Использование конструктора BaselineShift, передача ссылки с плавающей точкой для значения смещения предопределенные значения из сопутствующего объекта класса
     val Верхний индекс = BaselineShift(0.5f)
    val Нижний индекс = BaselineShift(-0.5f) 
    • textGeometricTransform — объявить геометрическое преобразование, которое будет применено к тексту. Ссылку можно создать, передав горизонтальный масштаб, который будет применен к тексту, вместе с наклоном, который будет применен для горизонтального направления
     класса данных TextGeometricTransform(
        val scaleX: Плавающая? = ноль,
        val skewX: Плавать? = ноль
    ) 
    • localeList — локали используются для выбора текста, специфичного для локали, с учетом текста, используемого в компоненте. Ссылку на LocalList можно создать с помощью
      • Используя ссылку на текущую локаль из сопутствующего объекта класса, LocaleList.current
      • Создайте ссылку, используя один из предоставленных конструкторов
     конструктор (languageTags: String) :
                this(languageTags.split(",").map { it.trim() }.map { Locale(it) })
    
    конструктор (вариант локалей: Локаль): это (локали.toList()) 
    • фон — androidx.Ссылка ui.graphics.Color, используемая для цвета фона текстового компонента
    • украшения — ссылка androidx.ui.text.style.TextDecoration, которая используется для рисования горизонтальной линии где-нибудь в тексте. Мы можем предоставить это двумя способами:

    – Использование одного из предоставленных текстовых украшений в сопутствующем объекте:

    • TextDecoration.None
    • TextDecoration.Underline
    • Оформление текста. LineThrough

    — Объединение нескольких текстовых украшений для создания одного украшения с использованием функции объединения в сопутствующем объекте:

     веселый комбинат(декорации: List): TextDecoration 
    • shadow — ссылка androidx.ui.graphics.Shadow, которая объявляет тень, которая будет отрисовываться на тексте
     data class Shadow(
        val цвет: Цвет = Цвет (0xFF000000),
        val смещение: Смещение = Смещение.нуль,
        val blurRadius: Px = 0.px
    ) 

    Как мы видим из этого, класс TextStyle предлагает огромную гибкость с тем, что мы можем использовать для оформления нашего текста. Как упоминалось ранее, не все из них требуются при создании нашего экземпляра, но может возникнуть необходимость настроить наш текст на определенном уровне.


    Стиль абзаца

    Когда дело доходит до предоставления стилей для абзацев текстового компонента, нам нужно использовать экземпляр класса ParagraphStyle. Как мы видим ниже, здесь можно установить несколько свойств:

     конструктор класса данных ParagraphStyle(
        val textAlign: TextAlign? = ноль,
        val textDirectionAlgorithm: TextDirectionAlgorithm? = ноль,
        val lineHeight: Sp? = ноль,
        val textIndent: TextIndent? = ноль
    ) 

    Возможно, вы заметили, что каждый из них допускает значение NULL со значением по умолчанию NULL. Это означает, что вам нужно указать только те атрибуты, которые вы хотите стилизовать. Давайте рассмотрим каждый из этих атрибутов ParagraphStyle и необходимые данные, когда дело доходит до их установки:

    textAlign — используется для объявления того, как отображаемый текст должен быть выровнен в компоненте.Это может быть один из ЛЕВЫЙ , НАЧАЛО , ПРАВЫЙ , КОНЕЦ , ЦЕНТР или ВЫРАВНИВАНИЕ .

    textDirectionAlgorithm — ссылка androidx. ui.text.style.TextDirectionAlgorithm, используемая для объявления того, как следует оценивать направление текста с учетом текстового содержимого. Поскольку это перечисление, мы можем использовать одно из объявленных значений:

    .
    • ContentOrLtr — при использовании двунаправленного алгоритма Unicode, если в тексте обнаружен сильный направленный символ, то направление текста будет определяться первым вхождением.В противном случае будет использоваться слева направо
    • ContentOrRtl — с использованием двунаправленного алгоритма Unicode, если в тексте обнаружен сильный символ направления, то первое вхождение будет определять направление текста. В противном случае будет использоваться направление справа налево
    • ForceLtr — принудительное отображение текста в формате слева направо
    • ForceRtl — принудительное отображение текста в формате справа налево

    lineHeight — androidx. Ссылка ui.core.Sp, которая объявляет высоту строки для отображаемого текста

    textIndent — ссылка androidx.ui.text.style.TextIndent, в которой указаны свойства, которые будут использоваться для отображения отступа для текста

     класс данных TextIndent(
        val firstLine: Sp = 0.sp,
        val restLine: Sp = 0.sp
    ) 

    С помощью этих атрибутов мы можем настроить внешний вид свойств, окружающих абзацы нашего текста.


    Как мы видели выше, можно создать экземпляр класса Composable Text для отображения этого компонента в нашем пользовательском интерфейсе.Если мы посмотрим на исходный код того, как устроен этот компонент, мы увидим, что это только что вызванная другая функция, используемая для создания экземпляра Composable Text:

    .
     @Составной
    забавный текст(
        текст: строка,
        модификатор: Модификатор = Модификатор.Нет,
        стиль: TextStyle? = ноль,
        стиль абзаца: стиль абзаца? = ноль,
        softWrap: Boolean = DefaultSoftWrap,
        переполнение: TextOverflow = DefaultOverflow,
        maxLines: Внутр. ? = Максимальное количество линий по умолчанию,
        selectionColor: Color = DefaultSelectionColor
    ) {
        Текст(
            текст = AnnotatedString(текст),
            модификатор = модификатор,
            стиль = стиль,
            стиль абзаца = стиль абзаца,
            мягкая упаковка = мягкая упаковка,
            перелив = перелив,
            максЛайн = максЛайнс,
            выборцвет = выборцвет
        )
    } 

    Выше мы видим, что эта вторая функция, используемая для создания компонента Text, почти такая же, с разницей в androidx.Ссылка ui.text.AnnotatedString вместо String для атрибута text .

     @Составной
    забавный текст(
        текст: AnnotatedString,
        модификатор: Модификатор = Модификатор.Нет,
        стиль: TextStyle? = ноль,
        стиль абзаца: стиль абзаца? = ноль,
        softWrap: Boolean = DefaultSoftWrap,
        переполнение: TextOverflow = DefaultOverflow,
        @SuppressLint("Автоупаковка")
        maxLines: Внутр.? = Максимальное количество линий по умолчанию,
        selectionColor: Color = DefaultSelectionColor
    ) 

    Если мы посмотрим на этот класс AnnotatedString, то увидим, что он использует текстовую ссылку для создания экземпляра. Первоначальная функция Text Composable, которую мы назвали, использовала это для повторного использования второй функции Text Composable выше, используя text = AnnotatedString(text) .

     класс данных AnnotatedString(
        val текст: строка,
        val textStyles: List> = listOf(),
        val ParagraphStyles: List> = listOf()
    ) 

    В некоторых случаях мы можем захотеть вызвать эту вторую функцию компонента Text и предоставить собственный экземпляр класса AnnotatedString — этот класс используется, когда мы хотим предоставить стилизованный текст, который использует диапазоны / несколько стилей текста.Когда дело доходит до использования этого класса, нам нужно использовать Builder, который он предоставляет. В качестве примера с минимальным стилем это может выглядеть примерно так:

     val annotatedString = AnnotatedString.Builder("Привет")
        .применять {
            addStyle (TextStyle (цвет = Color.Red), 0, 2)
        }
    Текст (текст = annotatedString. toAnnotatedString()) 

    При отображении этого в предварительном просмотре отображается следующий результат:

    Когда мы создаем новый Builder для класса AnnotatedString, у нас есть два конструктора, которые можно использовать для начала сборки:

    Конструктор
     (текст: строка)
    
    конструктор (текст: AnnotatedString) 

    После создания экземпляра нашего Builder мы можем добавить его к нашей AnnotatedString, используя три разные функции.Каждый из них позволяет нам добавлять содержимое к текущему состоянию нашей AnnotatedString, при условии, что оно находится в формате, который удовлетворяет одному из доступных конструкторов:

    .
     забавное добавление (текст: строка) { ... }
    весело добавить (char: Char) { ... }
    веселое добавление (текст: AnnotatedString) { ... } 

    Давайте возьмем приведенный выше пример и добавим к нему текст:

     annotatedString.append(", еще текст!")
    Текст (текст = annotatedString.toAnnotatedString()) 

    Когда дело доходит до добавления стиля к нашему AnnotatedText, мы видели использование addStyle выше, передачу ссылки на экземпляр TextStyle вместе с индексами start и end для того, где стиль должен применяться в нашем текст. Наряду с этим у нас также есть почти идентичная функция addStyle, которая принимает экземпляр ParagraphStyle для того места, где мы хотим стилизовать свойства, предоставляемые этим классом:

     весело addStyle(стиль: TextStyle, начало: Int, конец: Int) { ... }
    
    весело addStyle (стиль: ParagraphStyle, начало: Int, конец: Int) { ... } 

    С классом AnnotatedText могут быть случаи, когда мы хотим добавлять и удалять стили в более широком диапазоне содержимого без необходимости постоянно предоставлять начальный и конечный индексы.В этих ситуациях мы можем использовать функции push и pop , предоставляемые Builder.

    pushStyle(style: TextStyle): Int — помещает TextStyle в AnnotatedText. Стиль будет применяться к любому тексту, который добавляется после того, как стиль был передан. При нажатии TextStyle будет возвращен индекс стиля.

    pushStyle(style: ParagraphStyle): Int — помещает ParagraphStyle в AnnotatedText. Эта функция работает так же, как и выше.

    popStyle() — удаляет ранее добавленный стиль из AnnotatedText

    popStyle(index: Int) — удаляет стиль по указанному индексу из AnnotatedText

    Так, например, мы могли бы написать следующий код:

     val style = TextStyle(color = Color.Red)
    val annotatedString = AnnotatedString.Builder("Привет")
    annotatedString.pushStyle (стиль)
    annotatedString.append(", еще текст!")
    аннотированная строка.попстиль()
    annotatedString.append(" И еще кое-что.")
    Текст (текст = annotatedString.toAnnotatedString()) 

    Что даст нам следующий результат в нашем окне предварительного просмотра:

    Наконец, когда мы закончили создание нашего AnnotatedText, мы можем использовать функцию toAnnotatedString() , чтобы взять наш текст и присоединенные стили и вернуть нам экземпляр класса AnnotatedText.


    На протяжении всей этой статьи мы подробно рассмотрели все различные части компонента «Текст» и то, как их можно использовать для стилизации нашего текста так же, как мы это делали бы перед компоновкой. Хотя мы рассмотрели только вводное использование этих свойств, теперь, когда мы знаем, что здесь доступно и как это можно использовать, это дает нам знания, необходимые для того, что может предложить Text.

    Хотя Jetpack Compose все еще находится в стадии предварительной версии, некоторые из этих деталей, вероятно, изменятся. Но в то же время, если у вас есть какие-либо мысли или вопросы, пожалуйста, не стесняйтесь обращаться!

    [twitter-follow screen_name=’hitherejoe’ show_count=’yes’]

    Как изменить размер шрифта текста в Android Jetpack Compose?

    Android Compose — изменение размера шрифта текста

    Чтобы изменить размер шрифта для компоновки текста в Android Jetpack Compose, передайте требуемое значение размера шрифта для необязательного параметра fontSize для компоновки текста.

     импорт androidx.compose.ui.unit.sp
    
    Текст(
    "Привет мир",
    размер шрифта = 30. sp
    ) 

    Обязательно импортируйте sp , как показано в приведенном выше фрагменте кода, когда вы назначаете свойство fontSize с независимыми от масштаба пикселями.

    Пример

    Создайте приложение Android с помощью Jetpack Compose в качестве шаблона и измените файл MainActivity.kt, как показано ниже.

    Текст, компонуемый в следующем упражнении, отображает текст Hello World , и мы установим его размер шрифта на 30 s независимо от шкалы p пикселей равно 30.сп .

    MainActivity.kt

     пакет com.example.myapplication
    
    импортировать android.os.Bundle
    импортировать androidx.activity.compose.setContent
    импортировать androidx.appcompat.app.AppCompatActivity
    импортировать androidx.compose.foundation.layout.Column
    импортировать androidx.compose.foundation.layout.fillMaxWidth
    импортировать androidx.compose.material.Text
    импортировать androidx.compose. ui.Alignment
    импортировать androidx.compose.ui.Modifier
    импортировать androidx.compose.ui.unit.sp
    импортировать com.example.myapplication.ui.theme.MyApplicationTheme
    
    класс MainActivity : AppCompatActivity() {
        переопределить удовольствие onCreate(savedInstanceState: Bundle?) {
            super.onCreate(сохраненныйInstanceState)
            setContent {
                Моя тема приложения {
                    Столбец(
                        HorizontalAlignment = Alignment.CenterHorizontally,
                        модификатор = Модификатор.fillMaxWidth()
                    ) {
                        Текст(
                            "Привет мир",
                            размер шрифта = 30.sp
                        )
                    }
                }
            }
        }
    } 

    Снимок экрана в эмуляторе

    Давайте определим два компонента Text с размерами шрифта 30sp и 50sp соответственно и посмотрим на результат.

    MainActivity.kt

     пакет com.example. myapplication
    
    импортировать android.os.Bundle
    импортировать androidx.activity.compose.setContent
    импортировать androidx.appcompat.app.AppCompatActivity
    импортировать androidx.compose.foundation.layout.Column
    импортировать androidx.compose.foundation.layout.fillMaxWidth
    импортировать androidx.compose.material.Text
    импортировать androidx.compose.ui.Alignment
    импортировать androidx.compose.ui.Modifier
    импортировать androidx.compose.ui.unit.sp
    импортировать com.example.myapplication.ui.theme.MyApplicationTheme
    
    класс MainActivity : AppCompatActivity() {
        переопределить удовольствие onCreate(savedInstanceState: Bundle?) {
            super.onCreate(сохраненныйInstanceState)
            setContent {
                Моя тема приложения {
                    Столбец(
                        HorizontalAlignment = Alignment.CenterHorizontally,
                        модификатор = Модификатор.fillMaxWidth()
                    ) {
                        Текст(
                            "Привет мир",
                            размер шрифта = 30. sp
                        )
                        Текст(
                            "Привет мир",
                            размер шрифта = 50.сп
                        )
                    }
                }
            }
        }
    } 

    Снимок экрана в эмуляторе

    Заключение

    В этом руководстве по Android Jetpack Compose мы узнали, как изменить размер шрифта текста, компонуемого в Android Project с помощью Jetpack Compose.

    Растягиваемый текст в Jetpack Compose | Сайед Хуссейн Мехди

    С тех пор все обновляется день ото дня. В Android-разработке это обычное дело. Нам нужно постоянно обновлять себя новыми технологиями и обновлениями.

    Ранее XML был нашим лучшим другом для создания пользовательского интерфейса в Android. Теперь к нам присоединился новый друг как Jetpack Compose.

    Jetpack Compose — это декларативный пользовательский интерфейс, который упрощает разработку и дизайн пользовательского интерфейса.

    По мере появления новых вещей мы также сталкиваемся с проблемами. Я собираюсь написать о простой проблеме Как сделать Spannable Text в Compose?

    И да, с композицией это сделать очень просто.

    Для создания TextView в Compose мы используем Text.

    эл.g

      Text  (text = "Это мой текст") 

    Text является перегруженным методом, который принимает либо String, либо AnnotatedString.

    Чтобы создать spannable, мы должны создать AnnotatedString.

    Давайте возьмем текст, например, «Я прочитал Условия и положения» в этой строке. Я хочу раскрасить текст Условий и положений.

     val annotatedString =  buildAnnotatedString   { 
    append("Я прочитал")
    withStyle (style = SpanStyle(Color.Синий)) {
    append(" Сроки и условия")
    }
    }

    Мы можем сделать что-то вроде этого. buildAnnotatedString {} Мы поместим нашу строку в эту область с помощью метода append() .

    Чтобы задать стиль текста с помощью put , добавьте метод () в область withStyle(){} .

    А затем просто передайте annotatedString в Text().

    например

     @Composable 
    fun SpannableText() {
    val annotatedString = buildAnnotatedString {
    append("Я прочитал")
    withStyle (style = SColor = SColor.Blue)) {
    append(" Условия")
    }
    }
    Text (text = annotatedString)
    }

    Теперь в этом примере мы только что увидели, как мы можем расширить наш текст, используя AnnotatedString.

    Во второй статье я расскажу, как мы можем добавить Click on Spannable Text.

    Не забудьте подписаться на следующую статью 🙂 Удачного кодирования.

    Текст в Jetpack Compose Android — Intense Coder

    Введение:

    Jetpack Compose — это современный набор инструментов Android для создания пользовательского интерфейса. Таким образом, нам больше не нужны файлы xml в нашем проекте Android, вместо этого мы используем компонуемую функцию в наших файлах kotlin .

    В этой статье я покажу вам, как отобразить Text в Android с помощью Jetpack Compose. Текст эквивалентен TextView xml

    .

    _

    Атрибуты

    Параметры
    текст: Строка Отображаемый текст.Модификатор
    : Модификатор = Модификатор Модификатор  для применения к этому узлу макета.
    цвет: Цвет = Цвет. Не указано Цвет  для применения к тексту. Если Color.Unspecified и style не имеют набора цветов, это будет LocalContentColor .
    fontSize: TextUnit = TextUnit. Не указано Размер глифов, используемых при рисовании текста. См. TextStyle.fontSize .
    fontStyle: FontStyle? = null Вариант шрифта, используемый при рисовании букв (например, курсив). См. TextStyle.fontStyle .
    fontWeight: FontWeight? = null Толщина шрифта, используемая при рисовании текста (например, FontWeight.Bold ).
    fontFamily: FontFamily? = null Семейство шрифтов, которое будет использоваться при отображении текста.См. TextStyle.fontFamily .
    letterSpacing: TextUnit = TextUnit. Не указано Расстояние между каждой буквой. См. TextStyle.letterSpacing .
    textDecoration: TextDecoration? = null Украшения для рисования в тексте (например, подчеркивание). См. TextStyle.textDecoration .
    textAlign: TextAlign? = null Выравнивание текста по строкам абзаца. См. TextStyle.textAlign .
    lineHeight: TextUnit = TextUnit. Не указано Высота строки для СП или ЭМ. См. TextStyle.lineHeight .
    переполнение: TextOverflow = TextOverflow. Клип Как бороться с визуальным переполнением.
    softWrap: Boolean = true Должен ли текст прерываться при мягком разрыве строки.Если false, глифы в тексте будут располагаться так, как если бы горизонтальное пространство было неограниченным. Если softWrap имеет значение false, overflow и TextAlign могут привести к неожиданным результатам.
    maxLines: Int = Int. MAX_ VALUE Необязательное максимальное количество строк для охвата текста, при необходимости с переносом. Если текст превышает заданное количество строк, он будет обрезан в соответствии с overflow и softWrap . Если он не равен нулю, то он должен быть больше нуля.
    onTextLayout: (TextLayoutResult) -> Unit = {} Обратный вызов, который выполняется при расчете нового текстового макета. Объект TextLayoutResult , который предоставляет обратный вызов, содержит информацию об абзацах, размере текста, базовых линиях и других деталях. Обратный вызов можно использовать для добавления дополнительного оформления или функциональности к тексту. Например, чтобы нарисовать выделение вокруг текста.
    стиль: TextStyle = LocalTextStyle. текущий Конфигурация стиля для текста, например цвет, шрифт, высота строки и т. д.

    Текст

    Показать текст в Compose:

    Создайте новый проект и выберите Пустое действие создания .

    Удалить ниже два метода и очистить код от onCreate ,

    Чтобы это выглядело так

      импорт android. os.Bundle
    импортировать androidx.activity.ComponentActivity
    импортировать androidx.Activity.compose.setContent
    импортировать androidx.compose.material.MaterialTheme
    импортировать androidx.compose.material.Surface
    импортировать androidx.compose.material.Text
    импортировать androidx.compose.runtime.Composable
    импортировать androidx.compose.ui.tooling.preview.Preview
    импортировать com.intensecoder.composeblog.ui.theme.ComposeBlogTheme
    
    класс MainActivity : ComponentActivity() {
        переопределить удовольствие onCreate(savedInstanceState: Bundle?) {
            super.onCreate(сохраненныйInstanceState)
            setContent {
                
            }
        }
    }  

    Сначала создайте функцию и назовите ее MyText , аннотируйте эту функцию @Composable .

    В соответствии с рекомендациями первая буква составных функций должна быть заглавной.

      @Составной
    весело МойТекст () {
        
    }  

    На данный момент наша компонуемая функция пуста, начнем писать в нее код. Объявите в нем Текст , и установите его значение «Hello World»

      @Составной
    весело МойТекст () {
      Текст (текст = "Привет, мир")
    }
      

    Вызов этой функции из setContent из onCreate

      класс MainActivity: ComponentActivity() {
        переопределить удовольствие onCreate(savedInstanceState: Bundle?) {
            супер.при создании (сохраненное состояние экземпляра)
            setContent {
    
                МойТекст()
            }
        }
    }  

    Теперь запустите приложение, и вы увидите надпись «Hello World», написанную шрифтом Вверху слева

    .

    Увеличить размер текста в Compose:

    «Hello World» выглядит маленьким. Давайте увеличим размер текста и изменим цвет текста

    .
     
        Текст(
            текст = "Привет, мир",
            размер шрифта = 35.сп,
            цвет = Цвет.Синий,
        )
      

    Теперь запустите приложение.

    .

    Добавление отступов к тексту в Compose:

    Давайте добавим к нему отступы.

    Чтобы дать отступы, нам нужно использовать так называемые модификаторы

      Текст(
            текст = "Привет, мир",
            размер шрифта = 35.sp,
            цвет = Цвет.Синий,
            модификатор = Modifier.padding(24.dp)
        )  

    Выравнивание текста по центру по горизонтали в Compose:

    Чтобы выровнять текст по горизонтали относительно экрана, ширина текста должна быть равна ширине экрана.

      Текст(
            текст = "Привет, мир",
            размер шрифта = 35.sp,
            цвет = Цвет.Синий,
            модификатор = Modifier.padding(24.dp).fillMaxWidth(),
            textAlign = TextAlign.Центр
        )  

    Изменить текст шрифта в Compose:

    Чтобы отобразить пользовательский шрифт при составлении, мы должны выполнить несколько шагов

    1. Скачать шрифты с Google Fonts .
    2. Добавить в проект
    3. Установить на Составляемый текст

  1. Скачать шрифты с Google Font
  2. Перейдите в Google Fonts и загрузите любое семейство шрифтов.Я собираюсь скачать шрифт Georama . После загрузки нам нужно добавить его в наш проект.

  3. Добавить в проект
  4. Сначала создайте каталог шрифтов. Перейти к

    res -> Создать -> Каталог ресурсов Android

    установите тип ресурса как шрифт и нажмите «ОК». Папка font появится в окне вашего проекта.

    Добавьте семейство шрифтов в папку со шрифтами.

    Имейте в виду, что имя шрифта должно быть написано строчными буквами и не должно содержать никаких специальных символов, кроме подчеркивания .

  5. Установить для компоновки текста
  6. Объявите семейство шрифтов как переменную и установите для него значение Text Composable.

      @Составной
    весело МойТекст () {
    
        val myFontFamily = FontFamily(
            Шрифт (R.font.monte_carlo_regular),
        )
    
        Текст(
            текст = "Привет, мир",
            размер шрифта = 35.sp,
            цвет = Цвет.Синий,
            модификатор = модификатор
                .padding(24.dp)
                .fillMaxWidth(),
            textAlign = TextAlign.Центр,
            стиль = TextStyle (fontFamily = myFontFamily)
        )
    }  

    Составление SMS-разговора

    Агент может составить SMS-сообщение для взаимодействия с клиентом для решения различных вопросов.Если взаимодействие не относится к типу обмена сообщениями, вы увидите сообщение «Создать SMS». вариант.

    Требуемая роль: agent_workspace_user

    Провайдер настроен для канала типа SMS-сообщений.

    Как агент, вы можете составить и отправить SMS на текущий взаимодействие, которое не является типом обмена сообщениями.
    1. Щелкните Написать SMS.

      Отображается экран Отправить по SMS.

    2. Выберите номер телефона в раскрывающемся списке «Отправить» список.
      • Если указан только один номер телефона провайдера, это поле заполняется заранее с номером.
      • Если для каналов SMS доступно несколько профилей провайдера, можно выбрать из выпадающего списка.
    3. Выберите номер телефона в раскрывающемся списке «Отправить:». список.
      • Номера телефонов предварительно заполняются от потребителя или контакта записи.
      • Если оба не заполнены, система ищет номер из открыт для записи в таблице sys_user.
      • Если уже существует профиль пользователя канала, связанный с потребителем или контакт, номер телефона предварительно заполнен.
      1. Выберите «Другое» и выберите номер телефона в раскрывающийся список.
      Примечание. Все телефонные номера должны быть в формате E.164. Для получения дополнительной информации о проверка номера телефона и профиля пользователя канала, см. раздел Проверка номера телефона.

      Если уже есть текущий тип SMS взаимодействие с тем же или другим потребителем, вы можете просмотреть взаимодействие карту на том же экране. Карточка взаимодействия для номера потребителя, который у вас есть selected содержит номер взаимодействия, тип сообщения, время последнего обновления, потребитель, и отнесены к информации.

    4. Введите ваше сообщение в поле Сообщение.
    5. Щелкните Прикрепить файл, просмотрите, выберите файл и прикрепите.
Автор записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *