質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.44%
Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

Q&A

解決済

2回答

4342閲覧

Xamarin.FormsのTabbedページのUIをiOSとAndroidで揃えたい

itaoyuta

総合スコア11

Xamarin

Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

0グッド

0クリップ

投稿2017/01/20 04:52

編集2017/01/20 05:16

###前提・実現したいこと
Xamarin.FormsのTabbedページのUIをiOSとAndroidで揃えたい

###発生している問題
UIとしての表示されるタブは、Androidでは上つき、iOSでは下つきで表示される仕様がTabbedページと認識しています。
iOSでも上つきで表示したい場合、Tabbedでの実装は諦めて同等の機能を自前で実装する方が設計として正しいと思いますか?

CustomRendererを利用して、Tabbedを活かすべきか、すっぱり諦めて自前実装するべきか悩んでいます(そもそも与件的に実装できないという話であれば本末転倒ですが)

この辺りの知見がある方に、ご意見いただければ幸いです。
よろしくおねがいします。

追記

Xamarin.Formsから他プラットフォームへ移すということはありません。
Xamarin.Formsでの作成を前提としています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

swiftで書いてもタブの位置を変えられるので、以下のようにカスタムレンダラーを書けば行けそうです。

Xamarin.iOSのプロジェクトにXamarin.Forms.Platform.iOS.TabbedRendererの派生クラスを作る。(仮にMyTabbedRendererとします)

MyTabbedRendererでViewWillLayoutSubviews()をoverrideする。

stackoverflowの回答を参考にタブの位置を変える。

ios - Positioning UITabBar at the top - Stack Overflow

Xamarin.iOSのプロジェクトの中でTabbedPageのレンダラーにMyTabbedRendererを使うことを宣言する。
(Assembly.csなりMyTabbedRenderer.csに [assembly: ExportRenderer (typeof (TabbedPage), typeof (MyTabbedRenderer))] と書く)


追記

実際にできることを確認しました。

Xamarin.Forms.TabbedPageのiOS版でタブを上側に変更するサンプル - ぴーさんログ

投稿2017/01/20 05:55

編集2017/01/21 02:22
P3PPP

総合スコア359

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itaoyuta

2017/01/20 06:04

適切なご回答ありがとうございます! 結構、どっちに振るかで以後大きく変わりそうだったので、熟練の方にご意見いただいて最後の一押しをしてもらった気分です! 自信をもってCustomRendererの実装にふり切りたいと思います。 (http://ticktack.hatenablog.jp/ いつも参考にさせていただいて本当に助かっています、ありがとうございます!)
guest

0

Xamarin.forms は各プラットフォームに合った形のUIを吐くので、
カスタムする量が多そうなのでXamarin.Native(Xamarin.Traditional)で作成することをお勧めします

投稿2017/01/20 05:07

編集2017/01/20 05:08
fumiya_kume

総合スコア29

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itaoyuta

2017/01/20 05:15

ご回答ありがとうございます! 今回のプロジェクトしては、デザインとしてどうしても合わせたい大きな箇所がTabbedページのみなのでXamarin.Formsで開発を進めています。 Xamarin.Forms自体を変更することはないので、その中でどうするべきか悩んでいました。 定義にたりていませんでしたね、すみません。 質問の内容加筆しておきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.44%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問