2016-06-16 17 views
0

私はXamarinでAndroidアプリケーションを作っています。 私はそれを反応させたいので、画面サイズの値を取得する必要があります(これはうまくいきました)。これを別のアクティビティに送る必要がありますが、最初にリソースレイアウトを開く必要があるため、値を取得できません。C#Xamarin Androidのレスポンシブなレイアウトはどうですか?

string width1 = Intent.GetStringExtra("width") ?? "Data not available"; 
width = width1.ToString(); 
string height2 = Intent.GetStringExtra("height") ?? "Data not available"; 
height = height2.ToString(); 

// Set our view from the "recepten" layout resource 
if (Convert.ToInt32(width) <= 350 && Convert.ToInt32(height) <= 420) 
{ 
SetContentView(Resource.Layout.login); 
} 
else 
{ 
SetContentView(Resource.Layout.loginSmall); 
} 

私はこれを試しました(動作しません)が、別のレイアウトが既に開いているときに別のレイアウトを取得できません。

どのように知っていますか?

+1

なぜディメンションをアクティビティに送信しているのか、いつでも現在の値を取ることができます。 – Ive

+0

ディメンションの意味は? – Test

+0

画面のサイズは – Ive

答えて

4

あなたは間違っていると思います。反応レイアウトの実際の画面サイズを照会する必要はありません。

さまざまな画面サイズに異なるレイアウトを定義することができ、アンドロイドがデバイス用に最適なレイアウトを選択します。

Resources/layout/my_layout.xml // layout for normal screen size ("default") 
Resources/layout-large/my_layout.xml // layout for large screen size  
Resources/layout-xlarge/my_layout.xml // layout for extra-large screen size 
Resources/layout-xlarge-land/my_layout.xml // layout for extra-large in landscape orientation 

SetContentViewへの呼び出しは、右を選択するneccesaryロジックが含まれています。このofficial android documentationで説明したように「大」、「XLARGE」などとprefexedレイアウトフォルダのカップルを作成行うに

デバイスの画面サイズのレイアウト。

here複数の画面サイズのサポートの詳細については、こちらをご覧ください。

+0

どこのコードを入力する必要がありますか? – Test

+0

これはコードではありません。これは、プロジェクトのファイル構造(Visual Studioの右側のパネルに表示されているファイル)の例です。したがって、より多くのXMLファイルを作成する必要があります。 –

+0

だから私は4つの地図(レイアウト小、レイアウトノーマルなど)を作る場合、アンドロイドは自動的に最高のものを選ぶでしょうか? – Test

関連する問題