tonkunの備忘録

色々調べた事、試した事などを載せます

Xamarin.Android 各種Layoutについて

デザイナでツールボックスを見てると、Layoutがいくつもあって良くわからなかったので調べた内容のメモです。

LinearLayout(Horizontal)

LinearLayout(Vertical)

GridLayout(Vertical)

  • コントロールが指定した列数で格子状に並べられる。

  • 行をまたがってコントロールを配置できるらしい(やり方が良くわからず未確認)

TableLayout

  • 行単位でTableRowと言うコントロールがあり、そこに配置したいコントロールを並べる。 行をまたがってコントロールを配置する必要がないのであれば、こちらの方が使いやすそう。

RelativeLayout

  • コントロールに対して相対的な位置を指定して配置できる。 このButtonは画面右上とか、とあるButtonの右と言った指定が可能なので、うまく使えば複雑なレイアウトが作れそう。

  • デザイナから画面にコントロールを置くのが難しかった・・・(絶妙な場所にドラック&ドロップしないと配置できなかった)

これまではWindows Formでの開発がメインだったので、 同じように好きな場所にポイポイコントロールを配置できるのかと思っていました。 慣れるまでは画面レイアウトの作成が大変そうです。

Visual Studio Emulator for Androidが「UDPポートを構成できませんでした。」で起動できない

エミュレータの起動でいきなり嵌りました。

Surface Pro3でデバック実行すると、タイトルのエラーが出て起動できませんでした。

しかも画面には

f:id:tonkun_no:20160613033851p:plain

なんて出るもんだから 「Androidエミュレータ起動してるのに、なんでWindows Phone OSを起動しています。なの?設定間違ってる?」 と、これが合ってるかどうか分からず迷走しました。。。(皆さん最初はそう思いませんでしたか?)

以下のサイトを参考にさせてもらいましたが、私の環境では結果は変わりませんでした。

nuits.hatenadiary.jp

https://msdn.microsoft.com/ja-jp/library/mt228282.aspx#XamarinPlayer

煮詰まってしまったので、試しにデスクトップPCで試したところ、あっさり起動・・・orz

参考サイトの内容からHyper-Vインストール時に作成される仮想のネットワークカードが何か悪さしてるんだろうなと思っていたので、Surfaceの環境と見比べた結果、私の場合はVPN接続用のソフト*1が問題だったようで、 アンインストールするとSurfaceの方でもエミュレータが起動できました。

ただ、上記のソフトは仕事上必要なので、現状は大人しく実機デバックにしておきます。 まとまった時間が取れたら、ソフト入れながら動かせないか試してみようかと思います。

ようやくコーディングできそうです。

*1:FortiClient

Xamarin(Android)はじめました

Xamarinが無料化になったので、始めてみたいなと思い続けてはや2ヶ月 当初の熱が冷めてしまう前にと始めてみました。

今始めるならXamarin.Formsが流行りだとは思うんですが、

  • 仕事と連動する可能性があるので、Xamarin.Formsで人柱になる勇気がない(汗)
  • Xamarinネイティブでの開発もやってないのに、いきなりFormsとかいいのかと、若干ひよっている

との理由から、Xamarinネイティブで始めています。

Xamarin.iOSで始める予定だったんですが、 個人的な事情でMacの購入が先送りになったので、Xamarin.Androidで始めています。

本人の技術レベルです。

  • Android開発やったことがない
  • iOS開発やったことがない
  • C#は仕事で使ってる

これらの状態で始めていますので、おかしなところ等あればお願いします( 一一)