Android中setLayoutParams要用父控件的LayoutParams
2016-01-11 16:08
567 查看
这几天做程序想明白了一个问题,在此做一下记录。
ActionBarCustomView customview = new ActionBarCustomView(context);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
Gravity.CENTER_VERTICAL);
customview.setLayoutParams(lp);
给ActionBar上加子view,ActionBarCustomView是自己写好的子view。
其中父控件是ActionBar,那就必须写成ActionBar.LayoutParams
如果父控件是LinearLayout,那就必须写成LinearLayout.LayoutParams
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
layoutParams.gravity = Gravity.CENTER;
子view的布局是要以父控件为基础的,如果你的子布局是依靠父亲布局来显示的,就必须这么设置,要不子view在父view显示就会不正确。
一般情况这个问题是不会暴露的,只有你用的很细节的时候,才会出现。
ActionBarCustomView customview = new ActionBarCustomView(context);
ActionBar.LayoutParams lp = new ActionBar.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT,
Gravity.CENTER_VERTICAL);
customview.setLayoutParams(lp);
给ActionBar上加子view,ActionBarCustomView是自己写好的子view。
其中父控件是ActionBar,那就必须写成ActionBar.LayoutParams
如果父控件是LinearLayout,那就必须写成LinearLayout.LayoutParams
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
layoutParams.gravity = Gravity.CENTER;
子view的布局是要以父控件为基础的,如果你的子布局是依靠父亲布局来显示的,就必须这么设置,要不子view在父view显示就会不正确。
一般情况这个问题是不会暴露的,只有你用的很细节的时候,才会出现。
相关文章推荐
- 如何判断是否得到"android.permission.PACKAGE_USAGE_STATS"权限
- 最简单也最难——如何获取到Android控件的高度,获取android控件
- 另外两种Android沉浸式状态栏实现思路
- android studio 修改默认的 debug.keystore
- ANDROID版本号和版本名称
- Android中Service的使用详解和注意点(LocalService)
- Android实现波浪线效果(xml bitmap)
- android ndk c编译
- android中用setBackgroundResource加载图片时出现oom
- Android 删除无用Java文件
- Android之 环境搭建
- Gson解析null替换为空字符串
- Android Studio——如何将AndroidStudio的项目提交到Github上
- android游戏中关卡式背景是怎么做出来的
- 读书笔记------android图片加载
- android图片处理方法
- [Android]对MVC和MVP的总结
- Android异常之 unable to write jarlist cache file
- android 遇到的小问题解决集合
- Android--添加子视图(addView和setView)