android 动态设置布局宽度
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android 动态设置布局宽度相关的知识,希望对你有一定的参考价值。
参考技术A 例如设置一个图片宽高 关键代码://取控件当前的布局参数
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) imageView.getLayoutParams();
//设置宽度值
params.width = dip2px(MainActivity.this, width);
//设置高度值
params.height = dip2px(MainActivity.this, height);
//使设置好的布局参数应用到控件
imageView.setLayoutParams(params);
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
高度除了可以设置成以上固定的值,也可以设置成wrap_content或match_content
ViewGroup.LayoutParams.WRAP_CONTENT
ViewGroup.LayoutParams.MATCH_PARENT
1
2
1
2
在这里插入图片描述
xml
手动设置UILabel宽度自动布局的高度
【中文标题】手动设置UILabel宽度自动布局的高度【英文标题】:Manual set the height of UILable with autolayout 【发布时间】:2014-12-23 06:58:16 【问题描述】:我的自定义单元格中有一个动态高度的UIlabel,高度值是通过方法计算的:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context
然后我通过传递之前计算的值来调用以下方法:
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
但是,问题是我不能简单地设置label.frame = newFrame
以适应其内容,因为自动布局。
而且,我不想对故事板中的元素设置太多限制。我真正需要的是像lable.constraint.height = newHeight
这样的单行代码,有什么想法吗?
【问题讨论】:
【参考方案1】:为你的标签设置约束。
[yourlabel setNeedsUpdateConstraints];
[yourlabel setTranslatesAutoresizingMaskIntoConstraints:NO];
NSLayoutConstraint *constraintHeight = [NSLayoutConstraint constraintWithItem:yourlabel
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:newheight];
[yourlabel addConstraints:@[constraintHeight]];
【讨论】:
这对我不起作用,似乎无法添加新的约束。顺便说一句,我在进行单元配置时添加了此代码。 尝试将其添加到您的自定义单元格类中以上是关于android 动态设置布局宽度的主要内容,如果未能解决你的问题,请参考以下文章
android中gridView怎么在代码里动态设置每一列的宽度??
无法在 Android 中的 XML 中设置膨胀视图的布局宽度、高度和重量