在xamarin表单

时间:2017-12-13 14:10:52

标签: android xaml xamarin xamarin.forms xamarin.android

我是StackOverflow社区的新手! 我需要帮助解决Xamarin Forms中的android问题。确切地说......我和一些朋友一起尝试构建我们的第一个应用程序。我们选择(在我们的大学教授的帮助下)Xamarin为使用Xamarin Forms的两个系统进行Android和iOS的跨平台开发。我创建了应用程序的界面部分,现在我被困在一个有大墙的堡垒里。当我尝试添加标签页面功能栏的图标时,应用程序崩溃(Android),但在iOS中,问题不会出现......

我会尝试一些解决方案......比如:

NameApp.Droid中的-Render仅为android部分添加了不同的渲染器,但没有结果...... - 尝试另一种方法直接在.xaml文件中插入图标​​但没有结果...... - 尝试按照另一种方式修改“主题”部分的.axam文件 但没有结果......

我想只在“主项目”中按时整合所有内容。我现在不想触摸“nameProject.Droid”或“nameProject.iOS”部分,但尝试在一次拍摄中(Andriod& iOS)。我在Android(è.é)中发现了一个不同的错误,但为此,我发疯了...... 但我需要修改“.Droid”没问题我接受了挑战!

这是我渴望创造的结果。 “https://storage.googleapis.com/material-design/publish/material_v_12/assets/0B6Okdz75tqQsbHJuWi04N0ZIc0E/components-tabs-usage-mobile7.png

这是我在标签页中添加图标的方式。假设我在“.Droid”和“.iOS:

中的”资源“中添加了所有内容
        var MainPageTabbed = new MPageTabbed();

        var Profile = new Profile();

        var ListChat = new ListChat();

        if (Device.RuntimePlatform == Device.Android)
        {
            MainPageTabbed.Icon = "ldpi.png";
            Profile.Icon = "ldpi2.png";
            Chat.Icon = "ldpi1.png";

        }

        if (Device.RuntimePlatform == Device.iOS)
        {
            MainPageTabbed.Icon = "ldpi.png";
            Profile.Icon = "ldpi2.png";
            ListChat.Icon = "ldpi1.png";

        }
        NavigationPage.SetHasNavigationBar(this, false); 

        Children.Add(MainPageTabbed);
        Children.Add(Profile);
        Children.Add(ListChat);

有人可以帮我找一个解决方案吗?

2 个答案:

答案 0 :(得分:3)

这里有一个如何在xamarin表单中使用TabbedPage的示例:

https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/navigation/tabbed-page/

... Xamarin.forms将Android标签页面呈现为一个名为viewpager并与TabPagerStrib结合的内容,它看起来像上面链接中的示例。

您可能会阅读有关Android的BottomNavigationBar,或者查看此链接以查找包含图片的TabPagerStrip

https://forums.xamarin.com/discussion/39937/adding-icons-to-a-pagertabstrip-instead-of-text

答案 1 :(得分:1)

如果有人对FontAwesome自定义图标实现感兴趣,那么我将按照本教程开始:FontAwesome with Xamarin Forms

不幸的是,他没有提供与选项卡式页面集成的示例,但经过一些试验,我终于找到了一种简化的Xaml方式,无需定制的选项卡式渲染器即可进行渲染:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:local="clr-namespace:IBMobile.Views"
         xmlns:local2="clr-namespace:FontAwesome"
         x:Class="IBMobile.Views.HomePage"
         Visual="Material">
<ContentPage.IconImageSource>
    <FontImageSource FontFamily="{StaticResource FontAwesomeSolid}" Glyph="{x:Static local2:IconFont.Home}" />
</ContentPage.IconImageSource>