吐槽
这周就写了一点点项目,因为马上要考试了啊啊啊啊,啥都不会,心塞塞哇哇哇。但是把项目中动态加载布局这块学习了一下,把项目这块写了,然后还学了下如何动态添加item这块。
什么叫动态布局
这就是动态加载布局,根据我选择的卡片类型,创建不同的布局,加载到下面
动态布局就是动态加载的布局啊emmmmmmm
有动态布局肯定有相应的静态布局
那两者有什么区别啊
静态布局是之前就写好的,直接加载出来的布局—————–就是实现定义好的,就是你在xml里面写好的,绑定好的布局
动态布局就是在程序运行时候根据不同的情况然后再加载的,比如要点击这个按钮要替换一部分布局
xml里面定义布局的时候其实就两类东西
1这个布局和父布局的关系
2这个布局自身的属性定义
如果我们要动态加载布局的话,也就是通过这改变两个方面去处理的,可以通过java代码的方式,或者LayoutInflater 来间接加载。
动态改变布局java方式
控件的自身属性的改变–java代码里面之间改就好了
button.setText("button");
textView.setText("Some text");
类似上面这种方式,改变控件的属性
动态布局的父布局规则改变
是通过父布局的LayoutParams对象来实现的。
现在我们要新建三个LayoutParams对象,分别对应RelativeLayout,Button,和TextView的父布局规则。
LinearLayout.LayoutParams relativeLayout_parent_params
= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams button_parent_params
= new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
RelativeLayout.LayoutParams