2017-06-16 3 views
0

私は新しいxamarinベースのプロジェクトに取り組んでいます。私はコード内で動的に要素数を管理する必要がありますが、要素の重みを設定することに問題があります。レイアウトの例としては、次のものがあります。 activityXamarinで設定した要素の重さはC#

最初の行はaxmlで作成されています。他の行は、コードを使って新しい項目を追加した結果ですが、C#コードで作成したマークアップはaxml行のマークアップと同じです。ここで

は、C#のコードです:私は間違っ

LinearLayout contentView = FindViewById<LinearLayout>(Resource.Id.ATMListContentLayout); 

     foreach (var item in BitcoinQeueryInfo.ATMList.OrderBy(x => x.id)) 
     { 
      LinearLayout row = new LinearLayout(this) 
      { 
       WeightSum = 100, 
       Orientation = Orientation.Horizontal 
      }; 
      LinearLayout.LayoutParams paramsRow = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MatchParent, LinearLayout.LayoutParams.WrapContent); 
      row.LayoutParameters = paramsRow; 

      TextView text = new TextView(this) 
      { 
       Text = item.id + " " + item.address, 
       TextSize = 20, 
      }; 
      text.SetTextColor(Color.ParseColor("#000000")); 
      LinearLayout.LayoutParams paramsText = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WrapContent); 
      paramsText.Weight = 70; 
      text.LayoutParameters = paramsText; 

      Button button = new Button(this) 
      { 
       Text = "Sell BTC", 
       TextSize = 20 
      }; 
      LinearLayout.LayoutParams paramsBtn = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WrapContent); 
      paramsBtn.Weight = 30; 
      text.LayoutParameters = paramsBtn; 
      button.SetBackgroundResource(Resource.Color.orange); 
      button.SetTextColor(Color.ParseColor("#000000")); 

      row.AddView(text); 
      row.AddView(button); 
      contentView.AddView(row); 

      button.Click += delegate 
      { 
       BitcoinQeueryInfo.selectedATMId = item.id; 
       var newInstance = new Intent(this, typeof(BTCAmountScreen)); 
       StartActivity(newInstance); 
      }; 
     } 

何をやっているとどのように私は自分のコードに追加し、各行のための要素の重みを設定することができますか?

答えて

1

WeightSumおよびWeightは、float値です。

あなたは選択肢にあります

1.WeightSum = 100を削除します。デdocsから

は、最大重量の合計を定義します。未指定の場合、合計は で計算され、すべての子のlayout_weightが加算されます。これは、 インスタンスに対して、 によって利用可能なスペース全体の50%を1つの子に与え、layout_weightを0.5にし、weightSumを1.0に設定するために使用できます。


2.くださいWeightSum = 1.0fparamsText.Weight = 0.7f;paramsBtn.Weight = 0.3f;

関連する問題