void IPlatformService.OpenFileByTextReader(string filePath)
        {
            var activity = XEPlatform.CurrentActivity;

            if (filePath.StartsWith(IOPath.AppDataDirectory) || filePath.StartsWith(IOPath.CacheDirectory))
            {
                OpenFileByTextReaderByTextBlockActivity();
                return;
            }
            var result = GoToPlatformPages.OpenFile(
                activity,
                new(filePath),
                MediaTypeNames.TXT);

            if (!result)
            {
                OpenFileByTextReaderByTextBlockActivity();
            }

            void OpenFileByTextReaderByTextBlockActivity()
            {
                TextBlockActivity.StartActivity(activity, new() { FilePath = filePath });
            }
        }
        public override void OnCreate()
        {
            if (IsActivity)
            {
                SetSupportActionBarWithNavigationClick(true);
            }

            binding !.tvDevelopers.SetLinkMovementMethod();
            binding !.tvBusinessCooperationContact.SetLinkMovementMethod();
            binding !.tvOpenSourceLicensed.SetLinkMovementMethod();
            binding !.tvAgreementAndPrivacy.SetLinkMovementMethod();
            //binding!.tvContributors.SetLinkMovementMethod();

            binding !.tvTitle.TextFormatted      = CreateTitle();
            binding !.tvVersion.Text             = $"{ViewModel!.LabelVersionDisplay} {ViewModel.VersionDisplay}";
            binding !.tvDevelopers.TextFormatted = CreateDevelopers();
            binding !.tvBusinessCooperationContact.TextFormatted = CreateBusinessCooperationContact();
            binding !.tvOpenSourceLicensed.TextFormatted         = CreateOpenSourceLicensed();
            binding !.tvCopyright.Text = Copyright;
            //binding!.tvContributors.TextFormatted = CreateContributors();

            R.Subscribe(() =>
            {
                if (IsActivity)
                {
                    Activity.Title = ViewModel.Name;
                }
                if (binding == null)
                {
                    return;
                }
                binding.tvAgreementAndPrivacy.TextFormatted = CreateAgreementAndPrivacy();
            }).AddTo(this);

            var adapter = new SmallPreferenceButtonAdapter <PreferenceButtonViewModel, PreferenceButton>(ViewModel !.PreferenceButtons);

            adapter.ItemClick += async(_, e) =>
            {
                switch (e.Current.Id)
                {
                case PreferenceButton.检查更新:
                    ViewModel !.CheckUpdateCommand.Invoke();
                    break;

                case PreferenceButton.更新日志:
                    await Browser2.OpenAsync(string.Format(
                                                 UrlConstants.OfficialWebsite_Box_Changelog_,
                                                 IApplication.Instance.Theme.ToString2(),
                                                 R.Language));

                    break;

                case PreferenceButton.常见问题疑难解答:
                    await Browser2.OpenAsync(string.Format(
                                                 UrlConstants.OfficialWebsite_Box_Faq_,
                                                 IApplication.Instance.Theme.ToString2(),
                                                 R.Language));

                    break;

                case PreferenceButton.开放源代码许可:
                    TextBlockActivity.StartActivity(Activity, new TextBlockViewModel
                    {
                        Title         = AppResources.About_OpenSource,
                        ContentSource = TextBlockViewModel.ContentSourceEnum.OpenSourceLibrary,
                    });
                    break;

                case PreferenceButton.源码仓库:
                    ComboBoxHelper.Dialog(Activity, SourceRepositories, async x => await Browser2.OpenAsync(x switch
                    {
                        GitHub => UrlConstants.GitHub_Repository,
                        Gitee => UrlConstants.Gitee_Repository,
                        _ => default,
                    }));
                    break;