Button btnLesson = new Button(this);
     btnLesson.setId(id);
     btnLesson.layout(10, 10, 40, 40);
     btnLesson.setText("123");
     linearLayout.addView(btnLesson);
用这种方法定义按钮,按钮的大小还是没变化,仍然是宽度占据整个屏幕,高度适应字符,有什么方法定义按钮的大小和位置。

解决方案 »

  1.   

    setLayoutParams(ViewGroup.LayoutParams params) 设置大小等
      

  2.   

    就是用代码而不是用xml文件添加控件是吧?楼主可以看下这个http://blog.csdn.net/pathuang68/article/details/6647716。使用LayoutParams可以达到和xml一样的效果。
      

  3.   

    给LayoutParams.width和LayoutParams.height赋值吧
      

  4.   

    setLayoutParams(ViewGroup.LayoutParams params)   在设置layout的时候必须 设置布局参数  不然默认参数就是你出现的那种情况了
      

  5.   

    LinearLayout可以自由改变位置吗?
      

  6.   

    我也碰到了这个问题。
    原因是 setText 会导致界面重新布局,原来的layout会失效。
    目前还没找到很好的方法
      

  7.   

    直接在xml文件中设置不好吗?
      

  8.   

    LinearLayout 只能改左边距,右边距,改大小,不能直接改位置
    要动态改变位置的话,建议用 FrameLayout,并且设置 android:layout_gravity="top" FrameLayout.LayoutParams params = (FrameLayout.LayoutParams)btnMoveLayoutB.getLayoutParams();
    params.setMargins(left, top, 3, 3);
    btnMoveLayoutB.setLayoutParams(params);
      

  9.   

    RelativeLayout 是可以动态指定的 包括居中什么的