不知有没有哪位大侠阅读过android的AlertDialog和其成员类AlertController的源码。小弟最近想改写android的AlertDialog,其实就是把AlertController的部分方法做了修改,其中改写setupButtons方法时,假设dialog只有一个按钮的情况,为了美观,就需要让这个按钮占据底部的大部分区域,其实就是将按钮的宽度加大,本人代码如下:
LinearLayout.LayoutParams layoutParams = (android.widget.LinearLayout.LayoutParams) button.getLayoutParams();
layoutParams.width = 250;
layoutParams.height = 150;
button.setLayoutParams(layoutParams);
可是无论你的width设成多大,button的宽度永远不变,我也曾试着单独把这段代码放进一个新的activity中运行,xml布局代码一样,证实代码能正常运行,不知为什么在这个类中就不能运行了呢,要说android更改VIEW必须在main线程中运行,可为什么其实控制VIEW的方法就能正常运行呢,比如view.setVisibility()方法
望大侠们指教

解决方案 »

  1.   

    如果要用自己定义的dialog,直接使用Dialog类+style会比较好吧。
    另外,提高结帖率有助于你解决问题~~
      

  2.   

    谢谢,受教了,以后会及时结帐的
    我试了'Dialog类+style',好像没有AlertDialog封闭得那么好,而且阅读这两个类的源码对我学习android的帮助很大,因为如果只是会用android的控件而不知是内部实现原理会让人有云里雾里的感觉,知其然而不知其所以然,总是不能得心应手