#android #xml #telerik #nativescript
#Android #xml #telerik #nativescript
Вопрос:
Привет, люди!
Я пытаюсь добавить значок меню гамбургера на панель действий в моем приложении Nativescript, который запускал бы боковой ящик, но я не могу добавить этот значок меню.
Это официальная документация по этому вопросу;
И это мой .xml
код до сих пор:
<dpg:DrawerPage loaded="pageLoaded" navigatedTo="onNavigatingTo"
xmlns:dpg="nativescript-telerik-ui/sidedrawer/drawerpage"
xmlns:drawer="nativescript-telerik-ui/sidedrawer"
xmlns:sdc="views/side-drawer-content"
xmlns="http://www.nativescript.org/tns.xsd">
<navigation.actionBar>
<ActionBar title="Drawer Over Navigation">
<android>
<NavigationButton icon="res://ic_menu" tap="toggleDrawer" />
</android>
<ios>
<ActionItem icon="res://ic_menu" ios.position="left" tap="toggleDrawer" />
</ios>
</ActionBar>
</navigation.actionBar>
<dpg:DrawerPage.sideDrawer>
<drawer:RadSideDrawer id="drawer">
<drawer:RadSideDrawer.drawerContent>
<sdc:side-drawer-content />
</drawer:RadSideDrawer.drawerContent>
</drawer:RadSideDrawer>
</dpg:DrawerPage.sideDrawer>
<StackLayout cssClass="mainContent">
<Label text="{{ exampleText }}" textWrap="true" cssClass="drawerContentText"/>
<Button text="Toggle Drawer" tap="toggleDrawer" icon="res://ic_menu" />
</StackLayout>
</dpg:DrawerPage>
Я думаю, что соответствующая часть здесь, но я не вижу, в чем может быть моя ошибка.
<ActionBar title="Drawer Over Navigation">
<android>
<NavigationButton icon="res://ic_menu" tap="toggleDrawer" />
</android>
<ios>
<ActionItem icon="res://ic_menu" ios.position="left" tap="toggleDrawer" />
</ios>
</ActionBar>
Пожалуйста, сообщите мне любую дополнительную информацию, которую я мог бы предоставить, чтобы прояснить эту проблему.
Ответ №1:
Вариант 1.)
В документации предполагается, что у вас уже есть изображение ic_menu в ваших папках ресурсов (app / App_Resources/ Android / drawables-xxx для Android и app / App_Resources/iOS/Assets.xcassets). Пример можно найти здесь
Если у вас нет этого изображения (масштабируемого для разных устройств), вы должны предоставить его. Концепция практически такая же, как и для AppIcons (статья здесь). Существуют также инструменты для автоматической генерации изображений с разными масштабами — например, вот этот.
Вариант 2.)
Примечание: это будет работать только с синтаксисом пользовательских элементов ActionItems
Другой применимый вариант — создать меню для гамбургеров с помощью шрифтов значков вместо изображений (которые должны быть точно изменены для разных разрешений)
Пример:
1.) Используйте это вместо изображения
2.) Импортируйте шрифт значка в folder fonts пример здесь
3.) Создайте класс CSS
.font-awesome {
font-family: "FontAwesome";
font-size: 14;
font-weight: normal;
text-align: center;
}
4.) Примените код для глифа, который вы хотите использовать (в данном случае меню гамбургера)
<Button text="amp;#xf0c9;" class="font-awesome" tap="" />
Комментарии:
1. Большое спасибо за ваш ответ! Но когда я следую вашему примеру, я получаю кнопку с буквальным «amp;#xf0c9» вместо символа Юникода в меню гамбургера = O
2. Для Android свойство font-family должно точно соответствовать имени файла шрифта (без кавычек). Например, у вас есть
app/fonts/fontawesome.tff
, затем в CSS:font-family: fontawesome;
3. @DinhLe Я сделал, как вы сказали:
fontawesome-webfont.ttf
имя файла и свойство в css естьfont-family: fontawesome-webfont
, но это не сработало = (4. имя шрифта в файле CSS должно быть FontAwesome точно так, как показано в примере приложения — имя повторяется, поскольку авторы шрифта создали его, а не по имени файла
5. @NickIliev был прав. Я просто забыл добавить «;» в конце значения текста. Спасибо вам обоим за вашу помощь! = D