Android c#按钮重叠

时间:2013-10-30 10:52:29

标签: c# android asp.net mono xamarin

我有以下问题

Buttons overlap in android app

使用的代码如下:

        protected override void OnCreate(Bundle bundle)
       {
        base.OnCreate(bundle);

        SetContentView(Resource.Layout.Window);

         Bla WebS = new Bla();
         foreach (var item in WebS.Fetch(null, null, null))
         {
             var Params = new Android.Widget.LinearLayout.LayoutParams(Android.Widget.LinearLayout.LayoutParams.MatchParent, 
             Android.Widget.LinearLayout.LayoutParams.WrapContent);

             Button b = new Button(this);
             b.Text = item.Name;
             b.Id = Convert.ToInt16(item.ID);
             b.Click += new EventHandler(Soort_Click);
             this.AddContentView(b, Params);
         }
    }

我不知道我在这里失踪了什么?

2 个答案:

答案 0 :(得分:1)

现在,您正在向主要内容区域添加按钮,而不考虑它们的呈现方式。

你需要

  1. LinearLayout添加到Resource.Layout.Window内容视图中,并采用垂直方向。

  2. 使用FindViewById获取对该布局的引用(/ 布局ID /)

    var myLayout = FindViewById(Resource.Layout.myLayout);

  3. 要添加的foreach按钮,

    layout.AddView(/ * my button * /);

  4. 如果您无法将LinearLayout添加到Resource.Layout.Window内容视图,请在创建任何按钮之前动态创建它并将其添加到Resource.Layout.Window内容视图,然后将按钮添加到该视图。

    <LinearLayout 
        xmlns:android="schemas.android.com/apk/res/android"     
        android:id="@+id/myLayout"
        android:orientation="vertical" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent" />
    

答案 1 :(得分:0)

           LinearLayout ly = FindViewById<LinearLayout>(Resource.Id.linearLayout1);

         Bla WebS = new Bla();
         foreach (var item in WebS.Fetch(null, null, null))
         {
             var Params = new Android.Widget.LinearLayout.LayoutParams(Android.Widget.LinearLayout.LayoutParams.MatchParent, Android.Widget.LinearLayout.LayoutParams.WrapContent);
             Button b = new Button(this);
             b.Text = item.Naam;
             b.Id = Convert.ToInt16(item.ID);
             b.Click += new EventHandler(Soort_Click);

             ly.AddView(b, Params);
         }

DaveDev TY得到了它:):