做为一名初涉安卓的菜鸟,最近在使用Android动态布局时,碰到了一些坑点,今天就总结一下。原本是父布局RelativeLayout里面嵌套了一个子布局LinearLayout,而我现在想要动态调整这个LinearLayout的高度,但是在这里碰到了两个问题。
1.设置动态布局后没有效果。
原因:在设置动态布局时未指明其父布局。因为子布局属性的修改也是相对于父布局而言的。而我在使用的时候是用子布局来进行声明,所以导致了这个问题。
修改代码:
int height = 66;
RelativeLayout.LayoutParams heightParams =
new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, height);
linearContain.setLayoutParams(heightParams);
2.我在按照1的方法进行了修改之后,确实所设置的动态调整有了效果,但是又出现了第二个问题,LinearLayout中所设置的居中属性无效了。。。。。。。。后来在同学的提示下,发现因为第一步在设置属性时采用的是new的方式!!!!!之后我就采用了别的方式进行了动态设置。
修改代码:
int height = 66;
RelativeLayout.LayoutParams heightParams =
(RelativeLayout.LayoutParams) linearContain.getLayoutParams();
heightParams.height = height;
linearContain.setLayoutParams(heightParams);
到这里这个问题才彻底解决完毕 ~~~~