android 动态 设置layout_weight,android - 如何从代码中动态设置layout_weight属性?
android - 如何从代码中动态设置layout_weight属性?
如何从java代码动态设置android中的按钮属性layout_weight的值?
9个解决方案
377 votes
您可以将其作为LinearLayout.LayoutParams构造函数的一部分传递:
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT,
1.0f
);
YOUR_VIEW.setLayoutParams(param);
最后一个参数是重量。
Erich Douglass answered 2019-03-16T13:48:22Z
108 votes
使用LinearLayout.LayoutParams:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT);
params.weight = 1.0f;
Button button = new Button(this);
button.setLayoutParams(params);
编辑:啊,Erich的答案更容易!
kcoppock answered 2019-03-16T13:48:54Z
74 votes
如果您已经在layout(xml)文件中定义了视图,只想以编程方式更改权重,这种方式更好
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)
mButton.getLayoutParams();
params.weight = 1.0f;
mButton.setLayoutParams(params);
new a LayoutParams会覆盖您在xml文件中定义的其他参数,如margin,或者您需要在LayoutParams中指定所有这些参数。
pkliang answered 2019-03-16T13:49:28Z
19 votes
如果宽度,高度和重量的构造函数不起作用,请尝试使用宽度和高度的构造函数。 然后手动设置重量。
如果要根据权重设置宽度,请在构造函数中将width设置为0。 同样适用于身高。下面的代码适合我。
LinearLayout.LayoutParams childParam1 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT);
childParam1.weight = 0.3f;
child1.setLayoutParams(childParam1);
LinearLayout.LayoutParams childParam2 = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT);
childParam1.weight = 0.7f;
child2.setLayoutParams(childParam2);
parent.setWeightSum(1f);
parent.addView(child1);
parent.addView(child2);
Ganindu answered 2019-03-16T13:50:02Z
12 votes
如果我有人在寻找答案,请使用:
LinearLayout.LayoutParams lay = (LinearLayout.LayoutParams) myLayout.getLayoutParams();
lay.weight = 0.5;
如果要从xml文件初始化布局,这比为线性布局提供新的布局参数要方便得多。
ash1103 answered 2019-03-16T13:50:35Z
6 votes
任何MATCH_PARENT和WRAP_CONTENT为我工作,对于按钮右边的是TableRow.LayoutParams.这是:
TableRow.LayoutParams buttonParams = new TableRow.LayoutParams(
TableRow.LayoutParams.MATCH_PARENT,
TableRow.LayoutParams.WRAP_CONTENT, 1f);
关于使用MATCH_PARENT或WRAP_CONTENT是一样的。
gantzer89 answered 2019-03-16T13:51:10Z
2 votes
如果您已经在布局(xml)文件中定义了视图并且只想以编程方式更改权重,那么创建新的LayoutParams将覆盖您在xml文件中定义的其他参数。
首先你应该使用“getLayoutParams”然后使用setLayoutParams
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) mButton.getLayoutParams();
params.weight = 4f;
mButton.setLayoutParams(params);
Shirish Herwade answered 2019-03-16T13:51:51Z
1 votes
如果已经定义了layoutparams(以XML或动态方式),这是一个单行:
((LinearLayout.LayoutParams) mView.getLayoutParams()).weight = 1;
SolidSnake answered 2019-03-16T13:52:20Z
0 votes
使用Kotlin你可以做类似的事情:
import android.content.Context
import android.support.v4.content.ContextCompat
import android.support.v7.widget.CardView
import android.widget.*
import android.widget.LinearLayout
class RespondTo : CardView {
constructor(context: Context) : super(context) {
init(context)
}
private fun init(context: Context) {
val parent = LinearLayout(context)
parent.apply {
layoutParams = LinearLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
FrameLayout.LayoutParams.WRAP_CONTENT, 1.0f).apply {
orientation = LinearLayout.HORIZONTAL
addView(EditText(context).apply {
id = generateViewId()
layoutParams = LinearLayout.LayoutParams(0,
LinearLayout.LayoutParams.WRAP_CONTENT, 0.9f).apply {
}
})
addView(ImageButton(context).apply({
layoutParams = LinearLayout.LayoutParams(0,
LinearLayout.LayoutParams.WRAP_CONTENT, 0.1f)
background = null
setImageDrawable(ContextCompat.getDrawable(context, R.drawable.ic_save_black_24px))
id = generateViewId()
layoutParams = RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT).apply {
addRule(RelativeLayout.ALIGN_PARENT_RIGHT)
// addRule(RelativeLayout.LEFT_OF, myImageButton.id)
}
}))
}
}
this.addView(parent)
}
}
Hasan A Yousef answered 2019-03-16T13:52:49Z
android 动态 设置layout_weight,android - 如何从代码中动态设置layout_weight属性?相关推荐
- 【Android】代码中动态设置 drawable 背景
如图这样的效果,我们平时直接可以在 xml 写死. 写法很简单. <?xml version="1.0" encoding="utf-8"?>< ...
- android 动态设边距,在代码中动态设置页边距 - android
我有一个只包含ScrollView和TableLayout的活动.在我的代码我加入tablerows,一切工作正常,除了利润 - 它不工作(没有任何反应),下面是代码:在代码中动态设置页边距 - an ...
- 代码中动态设置view或布局的宽高
有时我们需要在应用中动态改变图片或某一块布局的大小.这就不能用XML文件写成固定值,而需要在java代码中动态设置.效果如下: 网上有一些教程使用relativeView.setLayoutParam ...
- Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理
原文链接(尊重原著):[100个 Unity实用技能] | Unity 在代码中 动态改变RectTransform位置及宽高 的方法整理_unity 修改recttransform_呆呆敲代码的小Y ...
- android .9图片在代码中的设置,Android点九图总结以及在聊天气泡中的使用
编辑推荐: 本文来自于腾讯云,介绍了点九图的本质,聊天气泡中使用点九图,其它问题等. 1. 点九图介绍 这一块是对点九图的简单介绍,如果对这块已经有了解的话,可以直接跳到2,看看聊天气泡中如何使用点九 ...
- android中在代码中动态布按钮和画板局并绘制曲线
绘图面板基类继承View package com.mytest.myapplication.Utility;import android.graphics.Color; import android. ...
- android studio 把libs包打包到apk中,设置应用以32bit去读取.so文件
android studio 把libs包打包到apk中: 只需在当前module里的build.gradle添加下列配置: sourceSets {main {jniLibs.srcDirs = [ ...
- linux设置anaconda环境变量,在Linux中永久设置Anaconda环境变量的方法
[感谢:http://www.codesec.net/view/459539.html] 如果在安装Anaconda的过程中没有将安装路径添加到系统环境变量中,需要在安装后手工添加: 1.在终端输入$ ...
- java 动态增加控件_在ngIf中动态添加组件
我有一些代码可以动态地添加/删除我的一个页面组件 . 这似乎工作得很好,我的方法基于Rob Wormald的真棒Ng2 Advanced Talk . 以标准方式执行操作如下所示: @Componen ...
- html语言设置网页背景,在html网页中如何设置背景图片?网页背景怎么设置?
不知道大家有没有发现,当我们在浏览部分网页的时候网页的背景都是很漂亮的.那么今天小编来教大家怎么在 html 网页中设置背景图片吧! 1.首先还是老样子,我们在开发工具中新建一个 .html 文件,然 ...
最新文章
- GHOST系统封装详细图文教程
- 2021-07-29
- AOGNet:基于深度 AND-OR 语法网络的目标识别方法 | PaperDaily #28
- Make It Connected
- Linux命令之ifconfig
- 计算机组成原理中英对照篇,信息科学系课程介绍(中英对照).doc
- anki 插入表格_Anki之导出卡牌组到Excel文件
- flutter输入框TextField中文本textAlign对齐分析篇
- python宽度优先搜索算法并输出路径
- nginx 1.11.0实现http和https正向代理
- 蓝桥杯题目——平方回文数
- java学习代码01 范围:基本测试、标识符、数据类型、运算符、控制语句
- linux系统有线网卡,Thinkpad E430+CentOS 6.4+ linux-3.10.12内核网卡驱动(无线+有线)配置...
- 数据三等分离散python_数据自习室01-描述性统计量
- 股票市场交易中的强化学习
- matlab和opencv混编(mex问题,mexopencv问题)(水下相机折射补偿:Pinax-model)
- 手把手教你接入微信开放平台,实现网站拉起微信账号登录,从0开始详细记录
- 2019-1-5-问答-产品经理有哪些细分领域,对应特点是什么?
- 基于采样的路径规划算法RRT和代码实现
- qss 画框_PyQt5系列教程(77):QSS入门2